<?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=Mcvflorin</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=Mcvflorin"/>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Special:Contributions/Mcvflorin"/>
		<updated>2026-04-28T11:54:44Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.8</generator>

	<entry>
		<id>http://wiki.mios.com/index.php/Verawebsockets</id>
		<title>Verawebsockets</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Verawebsockets"/>
				<updated>2018-03-09T09:54:24Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== What is ''verawebsockets''? ==&lt;br /&gt;
&lt;br /&gt;
'''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).&lt;br /&gt;
&lt;br /&gt;
The intention is to provide websockets support for the Luup plugins, which means that verawebsockets can be used from LuaUPnP as well as from standalone Lua scripts.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== create ===&lt;br /&gt;
Creates a websocket oject, which must be passed to other functions which require it.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''url''' (string): The URL to connect to.&lt;br /&gt;
* '''event_handlers''' (table): A table where the index is the [[#Event_IDs|event ID]], and the value is the callback function name.&lt;br /&gt;
* '''ssl_settings''' (table): A table where the index is the SSL setting name, and the value is the SSL setting value.&lt;br /&gt;
* '''standalone''' (boolean): Set this to '''true''' if using the library from a standalone Lua script, or to '''false''' if using the library from LuaUPnP. If not set, the default value is '''false'''. If ''standalone'' is ''true'', you must call the [[#loop|''loop'']] function after you call the [[#connect|''connect'']] function.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
* '''wso''' (websocket): The websocket object.&lt;br /&gt;
&lt;br /&gt;
=== connect ===&lt;br /&gt;
Connects to the URL from the websocket object.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''wso''' (websocket): This is the websocket object returned by the [[#create|''create'']] function.&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== loop ===&lt;br /&gt;
This function must be called if the [[#create|''create'']] function was called with the ''standalone'' parameter set to ''true''.&lt;br /&gt;
It blocks the main thread, waiting for the service thread to finish execution.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* none&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== set_log_level ===&lt;br /&gt;
Set how verbose the logs should be.&lt;br /&gt;
&lt;br /&gt;
The default log level is 0, meaning nothing is logged.&lt;br /&gt;
&lt;br /&gt;
If the library is used from LuaUPnP, the logs can be seen in &amp;lt;code&amp;gt;/tmp/log.Init-LuaUPnP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''log_levels''' (int or string): ''log_levels'' can be either a number, representing a bit mask where each bit is a log level, or the string ''&amp;quot;all&amp;quot;'', which means all log levels enabled, and it's the equivalent of setting all the bits in the mask (''log_levels'' = 2047). The available log levels are listed [[#Log_levels|here]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
=== Event IDs ===&lt;br /&gt;
Since ''verawebsockets'' is based on the ''libwebsockets'' library, the verawebsockets event IDs are the same as the libwebsockets callback reasons, which are documented here:&lt;br /&gt;
&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/group__usercb.html&lt;br /&gt;
&lt;br /&gt;
These are the event IDs which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Event ID&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | libwebsockets callback reason&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Failed to connect to the server. The reason for the failure is passed as parameter to the callback function. Some possible values are:&lt;br /&gt;
* getaddrinfo (ipv6) failed&lt;br /&gt;
* unknown address family&lt;br /&gt;
* getaddrinfo (ipv4) failed&lt;br /&gt;
* set socket opts failed&lt;br /&gt;
* insert wsi failed&lt;br /&gt;
* lws_ssl_client_connect1 failed&lt;br /&gt;
* lws_ssl_client_connect2 failed&lt;br /&gt;
* Peer hung up&lt;br /&gt;
* read failed&lt;br /&gt;
* HS: URI missing&lt;br /&gt;
* HS: Redirect code but no Location&lt;br /&gt;
* HS: URI did not parse&lt;br /&gt;
* HS: Redirect failed&lt;br /&gt;
* HS: Server did not return 200&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: disallowed by client filter&lt;br /&gt;
* HS: disallowed at ESTABLISHED&lt;br /&gt;
* HS: ACCEPT missing&lt;br /&gt;
* HS: ws upgrade response not 101&lt;br /&gt;
* HS: UPGRADE missing&lt;br /&gt;
* HS: Upgrade to something other than websocket&lt;br /&gt;
* HS: CONNECTION missing&lt;br /&gt;
* HS: UPGRADE malformed&lt;br /&gt;
* HS: PROTOCOL malformed&lt;br /&gt;
* HS: Cannot match protocol&lt;br /&gt;
* HS: EXT: list too big&lt;br /&gt;
* HS: EXT: failed setting defaults&lt;br /&gt;
* HS: EXT: failed parsing defaults&lt;br /&gt;
* HS: EXT: failed parsing options&lt;br /&gt;
* HS: EXT: Rejects server options&lt;br /&gt;
* HS: EXT: unknown ext&lt;br /&gt;
* HS: Accept hash wrong&lt;br /&gt;
* HS: Rejected by filter cb&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: SO_SNDBUF failed&lt;br /&gt;
* HS: Rejected at CLIENT_ESTABLISHED&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the connection with the server has been established. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLOSED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the websocket connection closed. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called when we receive data from the server. The received data is passed as parameter to the callback function.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== SSL settings ===&lt;br /&gt;
These are the SSL settings which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | SSL setting&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_cert_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | The certificate the client should present to the server on connection.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_private_key_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | Filepath to the client private key.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Log level&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Error&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Warning&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Notice&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Info&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Debug&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Parser&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Extensions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 256&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 512&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Latency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1024&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | User&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Example ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;#!/usr/bin/lua&lt;br /&gt;
&lt;br /&gt;
local ws = require(&amp;quot;verawebsockets&amp;quot;)&lt;br /&gt;
if not ws then&lt;br /&gt;
	print(&amp;quot;ERROR: Failed to load the verawebsockets library&amp;quot;)&lt;br /&gt;
	os.exit(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local g_wso&lt;br /&gt;
&lt;br /&gt;
local sslSettings = {&lt;br /&gt;
	client_ssl_cert_filepath = &amp;quot;ws.pem&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local eventHandlers = {&lt;br /&gt;
	[1] = &amp;quot;connerror&amp;quot;, -- LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
	[3] = &amp;quot;open&amp;quot;,      -- LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
	[4] = &amp;quot;close&amp;quot;,     -- LWS_CALLBACK_CLOSED&lt;br /&gt;
	[8] = &amp;quot;incoming&amp;quot;   -- LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function main()&lt;br /&gt;
	-- Log only errors and warnings.&lt;br /&gt;
	ws.set_log_level(3)&lt;br /&gt;
	-- This script is meant to be run standalone, so we set &amp;quot;standalone&amp;quot; to &amp;quot;true&amp;quot;.&lt;br /&gt;
	g_wso = ws.create {&lt;br /&gt;
		[&amp;quot;url&amp;quot;] = &amp;quot;wss://echo.websocket.org&amp;quot;,&lt;br /&gt;
		[&amp;quot;ssl_settings&amp;quot;] = sslSettings,&lt;br /&gt;
		[&amp;quot;event_handlers&amp;quot;] = eventHandlers,&lt;br /&gt;
		[&amp;quot;standalone&amp;quot;] = true&lt;br /&gt;
	}&lt;br /&gt;
	if not g_wso then&lt;br /&gt;
		print(&amp;quot;ERROR: Failed to create connection&amp;quot;)&lt;br /&gt;
		return 1&lt;br /&gt;
	end&lt;br /&gt;
	ws.connect(g_wso)&lt;br /&gt;
	-- Because we're in standalone mode, call the &amp;quot;loop&amp;quot; function&lt;br /&gt;
	-- to prevent the main thread from terminating.&lt;br /&gt;
	ws.loop()&lt;br /&gt;
	return 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function connerror (reason)&lt;br /&gt;
	print(&amp;quot;Connection error: &amp;quot;..(reason or nil))&lt;br /&gt;
	os.exit(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function open()&lt;br /&gt;
	local message = &amp;quot;Hello world!&amp;quot;&lt;br /&gt;
	print(&amp;quot;Connection successful, send message: &amp;quot;.. message)&lt;br /&gt;
	ws.send(g_wso, message);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function close()&lt;br /&gt;
	print(&amp;quot;Connection closed&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function incoming (data)&lt;br /&gt;
	data = data or &amp;quot;nil&amp;quot;&lt;br /&gt;
	print(&amp;quot;Received message: &amp;quot;.. data)&lt;br /&gt;
	if data:match(&amp;quot;^Hello world!&amp;quot;) then&lt;br /&gt;
		ws.send(g_wso, &amp;quot;Hello again!&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
os.exit(main())&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Further documentation ==&lt;br /&gt;
* The WebSocket protocol:&lt;br /&gt;
https://tools.ietf.org/html/rfc6455&lt;br /&gt;
* The libwebsockets library:&lt;br /&gt;
https://libwebsockets.org&lt;br /&gt;
* libwebsockets v2.4 documentation:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/index.html&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Verawebsockets</id>
		<title>Verawebsockets</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Verawebsockets"/>
				<updated>2018-03-09T08:18:27Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* loop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== What is ''verawebsockets''? ==&lt;br /&gt;
&lt;br /&gt;
'''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).&lt;br /&gt;
&lt;br /&gt;
The intention is to provide websockets support for the Luup plugins, which means that verawebsockets can be used from LuaUPnP as well as from standalone Lua scripts.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== create ===&lt;br /&gt;
Creates a websocket oject, which must be passed to other functions which require it.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''url''' (string): The URL to connect to.&lt;br /&gt;
* '''event_handlers''' (table): A table where the index is the [[#Event_IDs|event ID]], and the value is the callback function name.&lt;br /&gt;
* '''ssl_settings''' (table): A table where the index is the SSL setting name, and the value is the SSL setting value.&lt;br /&gt;
* '''standalone''' (boolean): Set this to '''true''' if using the library from a standalone Lua script, or to '''false''' if using the library from LuaUPnP. If not set, the default value is '''false'''. If ''standalone'' is ''true'', you must call the [[#loop|''loop'']] function after you call the [[#connect|''connect'']] function.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
* '''wso''' (websocket): The websocket object.&lt;br /&gt;
&lt;br /&gt;
=== connect ===&lt;br /&gt;
Connects to the URL from the websocket object.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''wso''' (websocket): This is the websocket object returned by the [[#create|''create'']] function.&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== loop ===&lt;br /&gt;
This function must be called if the [[#create|''create'']] function was called with the ''standalone'' parameter set to ''true''.&lt;br /&gt;
It blocks the main thread, waiting for the service thread to finish execution.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* none&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== set_log_level ===&lt;br /&gt;
Set how verbose the logs should be.&lt;br /&gt;
&lt;br /&gt;
The default log level is 0, meaning nothing is logged.&lt;br /&gt;
&lt;br /&gt;
If the library is used from LuaUPnP, the logs can be seen in &amp;lt;code&amp;gt;/tmp/log.Init-LuaUPnP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''log_levels''' (int or string): ''log_levels'' can be either a number, representing a bit mask where each bit is a log level, or the string ''&amp;quot;all&amp;quot;'', which means all log levels enabled, and it's the equivalent of setting all the bits in the mask (''log_levels'' = 2047). The available log levels are listed [[#Log_levels|here]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
=== Event IDs ===&lt;br /&gt;
Since ''verawebsockets'' is based on the ''libwebsockets'' library, the verawebsockets event IDs are the same as the libwebsockets callback reasons, which are documented here:&lt;br /&gt;
&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/group__usercb.html&lt;br /&gt;
&lt;br /&gt;
These are the event IDs which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Event ID&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | libwebsockets callback reason&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Failed to connect to the server. The reason for the failure is passed as parameter to the callback function. Some possible values are:&lt;br /&gt;
* getaddrinfo (ipv6) failed&lt;br /&gt;
* unknown address family&lt;br /&gt;
* getaddrinfo (ipv4) failed&lt;br /&gt;
* set socket opts failed&lt;br /&gt;
* insert wsi failed&lt;br /&gt;
* lws_ssl_client_connect1 failed&lt;br /&gt;
* lws_ssl_client_connect2 failed&lt;br /&gt;
* Peer hung up&lt;br /&gt;
* read failed&lt;br /&gt;
* HS: URI missing&lt;br /&gt;
* HS: Redirect code but no Location&lt;br /&gt;
* HS: URI did not parse&lt;br /&gt;
* HS: Redirect failed&lt;br /&gt;
* HS: Server did not return 200&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: disallowed by client filter&lt;br /&gt;
* HS: disallowed at ESTABLISHED&lt;br /&gt;
* HS: ACCEPT missing&lt;br /&gt;
* HS: ws upgrade response not 101&lt;br /&gt;
* HS: UPGRADE missing&lt;br /&gt;
* HS: Upgrade to something other than websocket&lt;br /&gt;
* HS: CONNECTION missing&lt;br /&gt;
* HS: UPGRADE malformed&lt;br /&gt;
* HS: PROTOCOL malformed&lt;br /&gt;
* HS: Cannot match protocol&lt;br /&gt;
* HS: EXT: list too big&lt;br /&gt;
* HS: EXT: failed setting defaults&lt;br /&gt;
* HS: EXT: failed parsing defaults&lt;br /&gt;
* HS: EXT: failed parsing options&lt;br /&gt;
* HS: EXT: Rejects server options&lt;br /&gt;
* HS: EXT: unknown ext&lt;br /&gt;
* HS: Accept hash wrong&lt;br /&gt;
* HS: Rejected by filter cb&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: SO_SNDBUF failed&lt;br /&gt;
* HS: Rejected at CLIENT_ESTABLISHED&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the connection with the server has been established. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLOSED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the websocket connection closed. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called when we receive data from the server. The received data is passed as parameter to the callback function.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== SSL settings ===&lt;br /&gt;
These are the SSL settings which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | SSL setting&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_cert_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | The certificate the client should present to the server on connection.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_private_key_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | Filepath to the client private key.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Log level&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Error&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Warning&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Notice&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Info&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Debug&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Parser&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Extensions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 256&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 512&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Latency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1024&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | User&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Further documentation ==&lt;br /&gt;
* The WebSocket protocol:&lt;br /&gt;
https://tools.ietf.org/html/rfc6455&lt;br /&gt;
* The libwebsockets library:&lt;br /&gt;
https://libwebsockets.org&lt;br /&gt;
* libwebsockets v2.4 documentation:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/index.html&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Verawebsockets</id>
		<title>Verawebsockets</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Verawebsockets"/>
				<updated>2018-03-09T08:15:34Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* loop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== What is ''verawebsockets''? ==&lt;br /&gt;
&lt;br /&gt;
'''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).&lt;br /&gt;
&lt;br /&gt;
The intention is to provide websockets support for the Luup plugins, which means that verawebsockets can be used from LuaUPnP as well as from standalone Lua scripts.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== create ===&lt;br /&gt;
Creates a websocket oject, which must be passed to other functions which require it.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''url''' (string): The URL to connect to.&lt;br /&gt;
* '''event_handlers''' (table): A table where the index is the [[#Event_IDs|event ID]], and the value is the callback function name.&lt;br /&gt;
* '''ssl_settings''' (table): A table where the index is the SSL setting name, and the value is the SSL setting value.&lt;br /&gt;
* '''standalone''' (boolean): Set this to '''true''' if using the library from a standalone Lua script, or to '''false''' if using the library from LuaUPnP. If not set, the default value is '''false'''. If ''standalone'' is ''true'', you must call the [[#loop|''loop'']] function after you call the [[#connect|''connect'']] function.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
* '''wso''' (websocket): The websocket object.&lt;br /&gt;
&lt;br /&gt;
=== connect ===&lt;br /&gt;
Connects to the URL from the websocket object.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''wso''' (websocket): This is the websocket object returned by the [[#create|''create'']] function.&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== loop ===&lt;br /&gt;
This function must be called if the [[#create|''create'']] function was called with the ''standalone'' parameter set to ''true''.&lt;br /&gt;
This function blocks the main thread, waiting for the service thread to finish execution.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* none&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== set_log_level ===&lt;br /&gt;
Set how verbose the logs should be.&lt;br /&gt;
&lt;br /&gt;
The default log level is 0, meaning nothing is logged.&lt;br /&gt;
&lt;br /&gt;
If the library is used from LuaUPnP, the logs can be seen in &amp;lt;code&amp;gt;/tmp/log.Init-LuaUPnP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''log_levels''' (int or string): ''log_levels'' can be either a number, representing a bit mask where each bit is a log level, or the string ''&amp;quot;all&amp;quot;'', which means all log levels enabled, and it's the equivalent of setting all the bits in the mask (''log_levels'' = 2047). The available log levels are listed [[#Log_levels|here]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
=== Event IDs ===&lt;br /&gt;
Since ''verawebsockets'' is based on the ''libwebsockets'' library, the verawebsockets event IDs are the same as the libwebsockets callback reasons, which are documented here:&lt;br /&gt;
&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/group__usercb.html&lt;br /&gt;
&lt;br /&gt;
These are the event IDs which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Event ID&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | libwebsockets callback reason&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Failed to connect to the server. The reason for the failure is passed as parameter to the callback function. Some possible values are:&lt;br /&gt;
* getaddrinfo (ipv6) failed&lt;br /&gt;
* unknown address family&lt;br /&gt;
* getaddrinfo (ipv4) failed&lt;br /&gt;
* set socket opts failed&lt;br /&gt;
* insert wsi failed&lt;br /&gt;
* lws_ssl_client_connect1 failed&lt;br /&gt;
* lws_ssl_client_connect2 failed&lt;br /&gt;
* Peer hung up&lt;br /&gt;
* read failed&lt;br /&gt;
* HS: URI missing&lt;br /&gt;
* HS: Redirect code but no Location&lt;br /&gt;
* HS: URI did not parse&lt;br /&gt;
* HS: Redirect failed&lt;br /&gt;
* HS: Server did not return 200&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: disallowed by client filter&lt;br /&gt;
* HS: disallowed at ESTABLISHED&lt;br /&gt;
* HS: ACCEPT missing&lt;br /&gt;
* HS: ws upgrade response not 101&lt;br /&gt;
* HS: UPGRADE missing&lt;br /&gt;
* HS: Upgrade to something other than websocket&lt;br /&gt;
* HS: CONNECTION missing&lt;br /&gt;
* HS: UPGRADE malformed&lt;br /&gt;
* HS: PROTOCOL malformed&lt;br /&gt;
* HS: Cannot match protocol&lt;br /&gt;
* HS: EXT: list too big&lt;br /&gt;
* HS: EXT: failed setting defaults&lt;br /&gt;
* HS: EXT: failed parsing defaults&lt;br /&gt;
* HS: EXT: failed parsing options&lt;br /&gt;
* HS: EXT: Rejects server options&lt;br /&gt;
* HS: EXT: unknown ext&lt;br /&gt;
* HS: Accept hash wrong&lt;br /&gt;
* HS: Rejected by filter cb&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: SO_SNDBUF failed&lt;br /&gt;
* HS: Rejected at CLIENT_ESTABLISHED&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the connection with the server has been established. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLOSED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the websocket connection closed. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called when we receive data from the server. The received data is passed as parameter to the callback function.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== SSL settings ===&lt;br /&gt;
These are the SSL settings which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | SSL setting&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_cert_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | The certificate the client should present to the server on connection.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_private_key_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | Filepath to the client private key.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Log level&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Error&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Warning&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Notice&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Info&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Debug&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Parser&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Extensions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 256&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 512&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Latency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1024&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | User&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Further documentation ==&lt;br /&gt;
* The WebSocket protocol:&lt;br /&gt;
https://tools.ietf.org/html/rfc6455&lt;br /&gt;
* The libwebsockets library:&lt;br /&gt;
https://libwebsockets.org&lt;br /&gt;
* libwebsockets v2.4 documentation:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/index.html&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Verawebsockets</id>
		<title>Verawebsockets</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Verawebsockets"/>
				<updated>2018-03-09T08:11:19Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* create */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== What is ''verawebsockets''? ==&lt;br /&gt;
&lt;br /&gt;
'''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).&lt;br /&gt;
&lt;br /&gt;
The intention is to provide websockets support for the Luup plugins, which means that verawebsockets can be used from LuaUPnP as well as from standalone Lua scripts.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== create ===&lt;br /&gt;
Creates a websocket oject, which must be passed to other functions which require it.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''url''' (string): The URL to connect to.&lt;br /&gt;
* '''event_handlers''' (table): A table where the index is the [[#Event_IDs|event ID]], and the value is the callback function name.&lt;br /&gt;
* '''ssl_settings''' (table): A table where the index is the SSL setting name, and the value is the SSL setting value.&lt;br /&gt;
* '''standalone''' (boolean): Set this to '''true''' if using the library from a standalone Lua script, or to '''false''' if using the library from LuaUPnP. If not set, the default value is '''false'''. If ''standalone'' is ''true'', you must call the [[#loop|''loop'']] function after you call the [[#connect|''connect'']] function.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
* '''wso''' (websocket): The websocket object.&lt;br /&gt;
&lt;br /&gt;
=== connect ===&lt;br /&gt;
Connects to the URL from the websocket object.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''wso''' (websocket): This is the websocket object returned by the [[#create|''create'']] function.&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== loop ===&lt;br /&gt;
Parameters:&lt;br /&gt;
* none&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== set_log_level ===&lt;br /&gt;
Set how verbose the logs should be.&lt;br /&gt;
&lt;br /&gt;
The default log level is 0, meaning nothing is logged.&lt;br /&gt;
&lt;br /&gt;
If the library is used from LuaUPnP, the logs can be seen in &amp;lt;code&amp;gt;/tmp/log.Init-LuaUPnP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''log_levels''' (int or string): ''log_levels'' can be either a number, representing a bit mask where each bit is a log level, or the string ''&amp;quot;all&amp;quot;'', which means all log levels enabled, and it's the equivalent of setting all the bits in the mask (''log_levels'' = 2047). The available log levels are listed [[#Log_levels|here]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
=== Event IDs ===&lt;br /&gt;
Since ''verawebsockets'' is based on the ''libwebsockets'' library, the verawebsockets event IDs are the same as the libwebsockets callback reasons, which are documented here:&lt;br /&gt;
&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/group__usercb.html&lt;br /&gt;
&lt;br /&gt;
These are the event IDs which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Event ID&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | libwebsockets callback reason&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Failed to connect to the server. The reason for the failure is passed as parameter to the callback function. Some possible values are:&lt;br /&gt;
* getaddrinfo (ipv6) failed&lt;br /&gt;
* unknown address family&lt;br /&gt;
* getaddrinfo (ipv4) failed&lt;br /&gt;
* set socket opts failed&lt;br /&gt;
* insert wsi failed&lt;br /&gt;
* lws_ssl_client_connect1 failed&lt;br /&gt;
* lws_ssl_client_connect2 failed&lt;br /&gt;
* Peer hung up&lt;br /&gt;
* read failed&lt;br /&gt;
* HS: URI missing&lt;br /&gt;
* HS: Redirect code but no Location&lt;br /&gt;
* HS: URI did not parse&lt;br /&gt;
* HS: Redirect failed&lt;br /&gt;
* HS: Server did not return 200&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: disallowed by client filter&lt;br /&gt;
* HS: disallowed at ESTABLISHED&lt;br /&gt;
* HS: ACCEPT missing&lt;br /&gt;
* HS: ws upgrade response not 101&lt;br /&gt;
* HS: UPGRADE missing&lt;br /&gt;
* HS: Upgrade to something other than websocket&lt;br /&gt;
* HS: CONNECTION missing&lt;br /&gt;
* HS: UPGRADE malformed&lt;br /&gt;
* HS: PROTOCOL malformed&lt;br /&gt;
* HS: Cannot match protocol&lt;br /&gt;
* HS: EXT: list too big&lt;br /&gt;
* HS: EXT: failed setting defaults&lt;br /&gt;
* HS: EXT: failed parsing defaults&lt;br /&gt;
* HS: EXT: failed parsing options&lt;br /&gt;
* HS: EXT: Rejects server options&lt;br /&gt;
* HS: EXT: unknown ext&lt;br /&gt;
* HS: Accept hash wrong&lt;br /&gt;
* HS: Rejected by filter cb&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: SO_SNDBUF failed&lt;br /&gt;
* HS: Rejected at CLIENT_ESTABLISHED&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the connection with the server has been established. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLOSED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the websocket connection closed. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called when we receive data from the server. The received data is passed as parameter to the callback function.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== SSL settings ===&lt;br /&gt;
These are the SSL settings which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | SSL setting&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_cert_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | The certificate the client should present to the server on connection.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_private_key_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | Filepath to the client private key.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Log level&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Error&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Warning&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Notice&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Info&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Debug&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Parser&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Extensions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 256&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 512&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Latency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1024&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | User&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Further documentation ==&lt;br /&gt;
* The WebSocket protocol:&lt;br /&gt;
https://tools.ietf.org/html/rfc6455&lt;br /&gt;
* The libwebsockets library:&lt;br /&gt;
https://libwebsockets.org&lt;br /&gt;
* libwebsockets v2.4 documentation:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/index.html&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Verawebsockets</id>
		<title>Verawebsockets</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Verawebsockets"/>
				<updated>2018-03-09T07:21:34Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* set_log_level */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== What is ''verawebsockets''? ==&lt;br /&gt;
&lt;br /&gt;
'''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).&lt;br /&gt;
&lt;br /&gt;
The intention is to provide websockets support for the Luup plugins, which means that verawebsockets can be used from LuaUPnP as well as from standalone Lua scripts.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== create ===&lt;br /&gt;
Creates a websocket oject, which must be passed to other functions which require it.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''url''' (string): The URL to connect to.&lt;br /&gt;
* '''event_handlers''' (table): A table where the index is the [[#Event_IDs|event ID]], and the value is the callback function name.&lt;br /&gt;
* '''ssl_settings''' (table): A table where the index is the SSL setting name, and the value is the SSL setting value.&lt;br /&gt;
* '''standalone''' (boolean): Set this to '''true''' if using the library from a standalone Lua script, or to '''false''' if using the library from LuaUPnP. If not set, the default value is '''false'''.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
* '''wso''' (websocket): The websocket object.&lt;br /&gt;
&lt;br /&gt;
=== connect ===&lt;br /&gt;
Connects to the URL from the websocket object.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''wso''' (websocket): This is the websocket object returned by the [[#create|''create'']] function.&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== loop ===&lt;br /&gt;
Parameters:&lt;br /&gt;
* none&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== set_log_level ===&lt;br /&gt;
Set how verbose the logs should be.&lt;br /&gt;
&lt;br /&gt;
The default log level is 0, meaning nothing is logged.&lt;br /&gt;
&lt;br /&gt;
If the library is used from LuaUPnP, the logs can be seen in &amp;lt;code&amp;gt;/tmp/log.Init-LuaUPnP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''log_levels''' (int or string): ''log_levels'' can be either a number, representing a bit mask where each bit is a log level, or the string ''&amp;quot;all&amp;quot;'', which means all log levels enabled, and it's the equivalent of setting all the bits in the mask (''log_levels'' = 2047). The available log levels are listed [[#Log_levels|here]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
=== Event IDs ===&lt;br /&gt;
Since ''verawebsockets'' is based on the ''libwebsockets'' library, the verawebsockets event IDs are the same as the libwebsockets callback reasons, which are documented here:&lt;br /&gt;
&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/group__usercb.html&lt;br /&gt;
&lt;br /&gt;
These are the event IDs which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Event ID&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | libwebsockets callback reason&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Failed to connect to the server. The reason for the failure is passed as parameter to the callback function. Some possible values are:&lt;br /&gt;
* getaddrinfo (ipv6) failed&lt;br /&gt;
* unknown address family&lt;br /&gt;
* getaddrinfo (ipv4) failed&lt;br /&gt;
* set socket opts failed&lt;br /&gt;
* insert wsi failed&lt;br /&gt;
* lws_ssl_client_connect1 failed&lt;br /&gt;
* lws_ssl_client_connect2 failed&lt;br /&gt;
* Peer hung up&lt;br /&gt;
* read failed&lt;br /&gt;
* HS: URI missing&lt;br /&gt;
* HS: Redirect code but no Location&lt;br /&gt;
* HS: URI did not parse&lt;br /&gt;
* HS: Redirect failed&lt;br /&gt;
* HS: Server did not return 200&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: disallowed by client filter&lt;br /&gt;
* HS: disallowed at ESTABLISHED&lt;br /&gt;
* HS: ACCEPT missing&lt;br /&gt;
* HS: ws upgrade response not 101&lt;br /&gt;
* HS: UPGRADE missing&lt;br /&gt;
* HS: Upgrade to something other than websocket&lt;br /&gt;
* HS: CONNECTION missing&lt;br /&gt;
* HS: UPGRADE malformed&lt;br /&gt;
* HS: PROTOCOL malformed&lt;br /&gt;
* HS: Cannot match protocol&lt;br /&gt;
* HS: EXT: list too big&lt;br /&gt;
* HS: EXT: failed setting defaults&lt;br /&gt;
* HS: EXT: failed parsing defaults&lt;br /&gt;
* HS: EXT: failed parsing options&lt;br /&gt;
* HS: EXT: Rejects server options&lt;br /&gt;
* HS: EXT: unknown ext&lt;br /&gt;
* HS: Accept hash wrong&lt;br /&gt;
* HS: Rejected by filter cb&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: SO_SNDBUF failed&lt;br /&gt;
* HS: Rejected at CLIENT_ESTABLISHED&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the connection with the server has been established. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLOSED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the websocket connection closed. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called when we receive data from the server. The received data is passed as parameter to the callback function.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== SSL settings ===&lt;br /&gt;
These are the SSL settings which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | SSL setting&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_cert_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | The certificate the client should present to the server on connection.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_private_key_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | Filepath to the client private key.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Log level&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Error&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Warning&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Notice&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Info&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Debug&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Parser&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Extensions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 256&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 512&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Latency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1024&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | User&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Further documentation ==&lt;br /&gt;
* The WebSocket protocol:&lt;br /&gt;
https://tools.ietf.org/html/rfc6455&lt;br /&gt;
* The libwebsockets library:&lt;br /&gt;
https://libwebsockets.org&lt;br /&gt;
* libwebsockets v2.4 documentation:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/index.html&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Verawebsockets</id>
		<title>Verawebsockets</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Verawebsockets"/>
				<updated>2018-03-09T07:20:06Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* set_log_level */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== What is ''verawebsockets''? ==&lt;br /&gt;
&lt;br /&gt;
'''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).&lt;br /&gt;
&lt;br /&gt;
The intention is to provide websockets support for the Luup plugins, which means that verawebsockets can be used from LuaUPnP as well as from standalone Lua scripts.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== create ===&lt;br /&gt;
Creates a websocket oject, which must be passed to other functions which require it.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''url''' (string): The URL to connect to.&lt;br /&gt;
* '''event_handlers''' (table): A table where the index is the [[#Event_IDs|event ID]], and the value is the callback function name.&lt;br /&gt;
* '''ssl_settings''' (table): A table where the index is the SSL setting name, and the value is the SSL setting value.&lt;br /&gt;
* '''standalone''' (boolean): Set this to '''true''' if using the library from a standalone Lua script, or to '''false''' if using the library from LuaUPnP. If not set, the default value is '''false'''.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
* '''wso''' (websocket): The websocket object.&lt;br /&gt;
&lt;br /&gt;
=== connect ===&lt;br /&gt;
Connects to the URL from the websocket object.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''wso''' (websocket): This is the websocket object returned by the [[#create|''create'']] function.&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== loop ===&lt;br /&gt;
Parameters:&lt;br /&gt;
* none&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== set_log_level ===&lt;br /&gt;
Set how verbose the logs should be.&lt;br /&gt;
&lt;br /&gt;
The default log level is 0, meaning nothing is logged.&lt;br /&gt;
&lt;br /&gt;
If the library is used from LuaUPnP, the logs can be seen in &amp;lt;code&amp;gt;/tmp/log.Init-LuaUPnP&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''log_levels''' (int or string): ''log_levels'' can be either a number, representing a bit mask where each bit is a log level, or the string ''&amp;quot;all&amp;quot;'', which means all log levels enabled, and it's the equivalent of setting all the bits in the mask (''log_levels'' = 2047). The available log levels are listed [[#Log_levels|here]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
=== Event IDs ===&lt;br /&gt;
Since ''verawebsockets'' is based on the ''libwebsockets'' library, the verawebsockets event IDs are the same as the libwebsockets callback reasons, which are documented here:&lt;br /&gt;
&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/group__usercb.html&lt;br /&gt;
&lt;br /&gt;
These are the event IDs which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Event ID&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | libwebsockets callback reason&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Failed to connect to the server. The reason for the failure is passed as parameter to the callback function. Some possible values are:&lt;br /&gt;
* getaddrinfo (ipv6) failed&lt;br /&gt;
* unknown address family&lt;br /&gt;
* getaddrinfo (ipv4) failed&lt;br /&gt;
* set socket opts failed&lt;br /&gt;
* insert wsi failed&lt;br /&gt;
* lws_ssl_client_connect1 failed&lt;br /&gt;
* lws_ssl_client_connect2 failed&lt;br /&gt;
* Peer hung up&lt;br /&gt;
* read failed&lt;br /&gt;
* HS: URI missing&lt;br /&gt;
* HS: Redirect code but no Location&lt;br /&gt;
* HS: URI did not parse&lt;br /&gt;
* HS: Redirect failed&lt;br /&gt;
* HS: Server did not return 200&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: disallowed by client filter&lt;br /&gt;
* HS: disallowed at ESTABLISHED&lt;br /&gt;
* HS: ACCEPT missing&lt;br /&gt;
* HS: ws upgrade response not 101&lt;br /&gt;
* HS: UPGRADE missing&lt;br /&gt;
* HS: Upgrade to something other than websocket&lt;br /&gt;
* HS: CONNECTION missing&lt;br /&gt;
* HS: UPGRADE malformed&lt;br /&gt;
* HS: PROTOCOL malformed&lt;br /&gt;
* HS: Cannot match protocol&lt;br /&gt;
* HS: EXT: list too big&lt;br /&gt;
* HS: EXT: failed setting defaults&lt;br /&gt;
* HS: EXT: failed parsing defaults&lt;br /&gt;
* HS: EXT: failed parsing options&lt;br /&gt;
* HS: EXT: Rejects server options&lt;br /&gt;
* HS: EXT: unknown ext&lt;br /&gt;
* HS: Accept hash wrong&lt;br /&gt;
* HS: Rejected by filter cb&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: SO_SNDBUF failed&lt;br /&gt;
* HS: Rejected at CLIENT_ESTABLISHED&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the connection with the server has been established. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLOSED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the websocket connection closed. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called when we receive data from the server. The received data is passed as parameter to the callback function.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== SSL settings ===&lt;br /&gt;
These are the SSL settings which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | SSL setting&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_cert_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | The certificate the client should present to the server on connection.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_private_key_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | Filepath to the client private key.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Log level&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Error&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Warning&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Notice&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Info&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Debug&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Parser&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Extensions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 256&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 512&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Latency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1024&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | User&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Further documentation ==&lt;br /&gt;
* The WebSocket protocol:&lt;br /&gt;
https://tools.ietf.org/html/rfc6455&lt;br /&gt;
* The libwebsockets library:&lt;br /&gt;
https://libwebsockets.org&lt;br /&gt;
* libwebsockets v2.4 documentation:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/index.html&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Verawebsockets</id>
		<title>Verawebsockets</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Verawebsockets"/>
				<updated>2018-03-08T15:56:52Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* connect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== What is ''verawebsockets''? ==&lt;br /&gt;
&lt;br /&gt;
'''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).&lt;br /&gt;
&lt;br /&gt;
The intention is to provide websockets support for the Luup plugins, which means that verawebsockets can be used from LuaUPnP as well as from standalone Lua scripts.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== create ===&lt;br /&gt;
Creates a websocket oject, which must be passed to other functions which require it.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''url''' (string): The URL to connect to.&lt;br /&gt;
* '''event_handlers''' (table): A table where the index is the [[#Event_IDs|event ID]], and the value is the callback function name.&lt;br /&gt;
* '''ssl_settings''' (table): A table where the index is the SSL setting name, and the value is the SSL setting value.&lt;br /&gt;
* '''standalone''' (boolean): Set this to '''true''' if using the library from a standalone Lua script, or to '''false''' if using the library from LuaUPnP. If not set, the default value is '''false'''.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
* '''wso''' (websocket): The websocket object.&lt;br /&gt;
&lt;br /&gt;
=== connect ===&lt;br /&gt;
Connects to the URL from the websocket object.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''wso''' (websocket): This is the websocket object returned by the [[#create|''create'']] function.&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== loop ===&lt;br /&gt;
Parameters:&lt;br /&gt;
* none&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== set_log_level ===&lt;br /&gt;
Set how verbose the logs should be.&lt;br /&gt;
&lt;br /&gt;
The default log level is 0, meaning nothing is logged.&lt;br /&gt;
&lt;br /&gt;
If the library is used from LuaUPnP, the logs can be seen in /tmp/log.Init-LuaUPnP&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''log_levels''' (int or string): ''log_levels'' can be either a number, representing a bit mask where each bit is a log level, or the string ''&amp;quot;all&amp;quot;'', which means all log levels enabled, and it's the equivalent of setting all the bits in the mask (''log_levels'' = 2047). The available log levels are listed [[#Log_levels|here]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Reference ==&lt;br /&gt;
=== Event IDs ===&lt;br /&gt;
Since ''verawebsockets'' is based on the ''libwebsockets'' library, the verawebsockets event IDs are the same as the libwebsockets callback reasons, which are documented here:&lt;br /&gt;
&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/group__usercb.html&lt;br /&gt;
&lt;br /&gt;
These are the event IDs which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Event ID&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | libwebsockets callback reason&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Failed to connect to the server. The reason for the failure is passed as parameter to the callback function. Some possible values are:&lt;br /&gt;
* getaddrinfo (ipv6) failed&lt;br /&gt;
* unknown address family&lt;br /&gt;
* getaddrinfo (ipv4) failed&lt;br /&gt;
* set socket opts failed&lt;br /&gt;
* insert wsi failed&lt;br /&gt;
* lws_ssl_client_connect1 failed&lt;br /&gt;
* lws_ssl_client_connect2 failed&lt;br /&gt;
* Peer hung up&lt;br /&gt;
* read failed&lt;br /&gt;
* HS: URI missing&lt;br /&gt;
* HS: Redirect code but no Location&lt;br /&gt;
* HS: URI did not parse&lt;br /&gt;
* HS: Redirect failed&lt;br /&gt;
* HS: Server did not return 200&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: disallowed by client filter&lt;br /&gt;
* HS: disallowed at ESTABLISHED&lt;br /&gt;
* HS: ACCEPT missing&lt;br /&gt;
* HS: ws upgrade response not 101&lt;br /&gt;
* HS: UPGRADE missing&lt;br /&gt;
* HS: Upgrade to something other than websocket&lt;br /&gt;
* HS: CONNECTION missing&lt;br /&gt;
* HS: UPGRADE malformed&lt;br /&gt;
* HS: PROTOCOL malformed&lt;br /&gt;
* HS: Cannot match protocol&lt;br /&gt;
* HS: EXT: list too big&lt;br /&gt;
* HS: EXT: failed setting defaults&lt;br /&gt;
* HS: EXT: failed parsing defaults&lt;br /&gt;
* HS: EXT: failed parsing options&lt;br /&gt;
* HS: EXT: Rejects server options&lt;br /&gt;
* HS: EXT: unknown ext&lt;br /&gt;
* HS: Accept hash wrong&lt;br /&gt;
* HS: Rejected by filter cb&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: SO_SNDBUF failed&lt;br /&gt;
* HS: Rejected at CLIENT_ESTABLISHED&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the connection with the server has been established. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLOSED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the websocket connection closed. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called when we receive data from the server. The received data is passed as parameter to the callback function.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== SSL settings ===&lt;br /&gt;
These are the SSL settings which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | SSL setting&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_cert_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | The certificate the client should present to the server on connection.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_private_key_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | Filepath to the client private key.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Log level&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Error&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Warning&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Notice&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Info&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Debug&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Parser&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Extensions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 256&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 512&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Latency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1024&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | User&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Further documentation ==&lt;br /&gt;
* The WebSocket protocol:&lt;br /&gt;
https://tools.ietf.org/html/rfc6455&lt;br /&gt;
* The libwebsockets library:&lt;br /&gt;
https://libwebsockets.org&lt;br /&gt;
* libwebsockets v2.4 documentation:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/index.html&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Verawebsockets</id>
		<title>Verawebsockets</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Verawebsockets"/>
				<updated>2018-03-08T15:52:35Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* create */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== What is ''verawebsockets''? ==&lt;br /&gt;
&lt;br /&gt;
'''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).&lt;br /&gt;
&lt;br /&gt;
The intention is to provide websockets support for the Luup plugins, which means that verawebsockets can be used from LuaUPnP as well as from standalone Lua scripts.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== create ===&lt;br /&gt;
Creates a websocket oject, which must be passed to other functions which require it.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''url''' (string): The URL to connect to.&lt;br /&gt;
* '''event_handlers''' (table): A table where the index is the [[#Event_IDs|event ID]], and the value is the callback function name.&lt;br /&gt;
* '''ssl_settings''' (table): A table where the index is the SSL setting name, and the value is the SSL setting value.&lt;br /&gt;
* '''standalone''' (boolean): Set this to '''true''' if using the library from a standalone Lua script, or to '''false''' if using the library from LuaUPnP. If not set, the default value is '''false'''.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
* '''wso''' (websocket): The websocket object.&lt;br /&gt;
&lt;br /&gt;
=== connect ===&lt;br /&gt;
Connects to the URL from the websocket object.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* wso (websocket): This is the websocket object returned by the [[#create|create]] function.&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== loop ===&lt;br /&gt;
Parameters:&lt;br /&gt;
* none&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== set_log_level ===&lt;br /&gt;
Set how verbose the logs should be.&lt;br /&gt;
&lt;br /&gt;
The default log level is 0, meaning nothing is logged.&lt;br /&gt;
&lt;br /&gt;
If the library is used from LuaUPnP, the logs can be seen in /tmp/log.Init-LuaUPnP&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''log_levels''' (int or string): ''log_levels'' can be either a number, representing a bit mask where each bit is a log level, or the string ''&amp;quot;all&amp;quot;'', which means all log levels enabled, and it's the equivalent of setting all the bits in the mask (''log_levels'' = 2047). The available log levels are listed [[#Log_levels|here]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Reference ==&lt;br /&gt;
=== Event IDs ===&lt;br /&gt;
Since ''verawebsockets'' is based on the ''libwebsockets'' library, the verawebsockets event IDs are the same as the libwebsockets callback reasons, which are documented here:&lt;br /&gt;
&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/group__usercb.html&lt;br /&gt;
&lt;br /&gt;
These are the event IDs which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Event ID&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | libwebsockets callback reason&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Failed to connect to the server. The reason for the failure is passed as parameter to the callback function. Some possible values are:&lt;br /&gt;
* getaddrinfo (ipv6) failed&lt;br /&gt;
* unknown address family&lt;br /&gt;
* getaddrinfo (ipv4) failed&lt;br /&gt;
* set socket opts failed&lt;br /&gt;
* insert wsi failed&lt;br /&gt;
* lws_ssl_client_connect1 failed&lt;br /&gt;
* lws_ssl_client_connect2 failed&lt;br /&gt;
* Peer hung up&lt;br /&gt;
* read failed&lt;br /&gt;
* HS: URI missing&lt;br /&gt;
* HS: Redirect code but no Location&lt;br /&gt;
* HS: URI did not parse&lt;br /&gt;
* HS: Redirect failed&lt;br /&gt;
* HS: Server did not return 200&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: disallowed by client filter&lt;br /&gt;
* HS: disallowed at ESTABLISHED&lt;br /&gt;
* HS: ACCEPT missing&lt;br /&gt;
* HS: ws upgrade response not 101&lt;br /&gt;
* HS: UPGRADE missing&lt;br /&gt;
* HS: Upgrade to something other than websocket&lt;br /&gt;
* HS: CONNECTION missing&lt;br /&gt;
* HS: UPGRADE malformed&lt;br /&gt;
* HS: PROTOCOL malformed&lt;br /&gt;
* HS: Cannot match protocol&lt;br /&gt;
* HS: EXT: list too big&lt;br /&gt;
* HS: EXT: failed setting defaults&lt;br /&gt;
* HS: EXT: failed parsing defaults&lt;br /&gt;
* HS: EXT: failed parsing options&lt;br /&gt;
* HS: EXT: Rejects server options&lt;br /&gt;
* HS: EXT: unknown ext&lt;br /&gt;
* HS: Accept hash wrong&lt;br /&gt;
* HS: Rejected by filter cb&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: SO_SNDBUF failed&lt;br /&gt;
* HS: Rejected at CLIENT_ESTABLISHED&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the connection with the server has been established. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLOSED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the websocket connection closed. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called when we receive data from the server. The received data is passed as parameter to the callback function.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== SSL settings ===&lt;br /&gt;
These are the SSL settings which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | SSL setting&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_cert_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | The certificate the client should present to the server on connection.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_private_key_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | Filepath to the client private key.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Log level&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Error&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Warning&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Notice&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Info&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Debug&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Parser&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Extensions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 256&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 512&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Latency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1024&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | User&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Further documentation ==&lt;br /&gt;
* The WebSocket protocol:&lt;br /&gt;
https://tools.ietf.org/html/rfc6455&lt;br /&gt;
* The libwebsockets library:&lt;br /&gt;
https://libwebsockets.org&lt;br /&gt;
* libwebsockets v2.4 documentation:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/index.html&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Verawebsockets</id>
		<title>Verawebsockets</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Verawebsockets"/>
				<updated>2018-03-08T12:13:35Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== What is ''verawebsockets''? ==&lt;br /&gt;
&lt;br /&gt;
'''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).&lt;br /&gt;
&lt;br /&gt;
The intention is to provide websockets support for the Luup plugins, which means that verawebsockets can be used from LuaUPnP as well as from standalone Lua scripts.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== create ===&lt;br /&gt;
Creates a websocket oject, which can be passed to the [[#connect|connect]] function.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''url''' (string): The URL to connect to.&lt;br /&gt;
* '''event_handlers''' (table): A table where the index is the [[#Event_IDs|event ID]], and the value is the callback function name.&lt;br /&gt;
* '''ssl_settings''' (table): A table where the index is the SSL setting name, and the value is the SSL setting value.&lt;br /&gt;
* '''standalone''' (boolean): In ''standalone'' mode the service thread won't be detached, which means that the main thread should wait for the service thread to exit, before exiting itself. This is done by calling the [[#loop|loop]] function from Lua. This mode should be used when the library is loaded from a standalone Lua script, which can afford to block for an undefined amount of time. If the library is loaded from LuaUPnP, ''standalone'' should be '''false''', because LuaUPnP functions can't block for much time, otherwise the watchdog will restart the Luup engine.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
* wso (websocket)&lt;br /&gt;
&lt;br /&gt;
=== connect ===&lt;br /&gt;
Connects to the URL from the websocket object.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* wso (websocket): This is the websocket object returned by the [[#create|create]] function.&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== loop ===&lt;br /&gt;
Parameters:&lt;br /&gt;
* none&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== set_log_level ===&lt;br /&gt;
Set how verbose the logs should be.&lt;br /&gt;
&lt;br /&gt;
The default log level is 0, meaning nothing is logged.&lt;br /&gt;
&lt;br /&gt;
If the library is used from LuaUPnP, the logs can be seen in /tmp/log.Init-LuaUPnP&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''log_levels''' (int or string): ''log_levels'' can be either a number, representing a bit mask where each bit is a log level, or the string ''&amp;quot;all&amp;quot;'', which means all log levels enabled, and it's the equivalent of setting all the bits in the mask (''log_levels'' = 2047). The available log levels are listed [[#Log_levels|here]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Reference ==&lt;br /&gt;
=== Event IDs ===&lt;br /&gt;
Since ''verawebsockets'' is based on the ''libwebsockets'' library, the verawebsockets event IDs are the same as the libwebsockets callback reasons, which are documented here:&lt;br /&gt;
&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/group__usercb.html&lt;br /&gt;
&lt;br /&gt;
These are the event IDs which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Event ID&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | libwebsockets callback reason&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Failed to connect to the server. The reason for the failure is passed as parameter to the callback function. Some possible values are:&lt;br /&gt;
* getaddrinfo (ipv6) failed&lt;br /&gt;
* unknown address family&lt;br /&gt;
* getaddrinfo (ipv4) failed&lt;br /&gt;
* set socket opts failed&lt;br /&gt;
* insert wsi failed&lt;br /&gt;
* lws_ssl_client_connect1 failed&lt;br /&gt;
* lws_ssl_client_connect2 failed&lt;br /&gt;
* Peer hung up&lt;br /&gt;
* read failed&lt;br /&gt;
* HS: URI missing&lt;br /&gt;
* HS: Redirect code but no Location&lt;br /&gt;
* HS: URI did not parse&lt;br /&gt;
* HS: Redirect failed&lt;br /&gt;
* HS: Server did not return 200&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: disallowed by client filter&lt;br /&gt;
* HS: disallowed at ESTABLISHED&lt;br /&gt;
* HS: ACCEPT missing&lt;br /&gt;
* HS: ws upgrade response not 101&lt;br /&gt;
* HS: UPGRADE missing&lt;br /&gt;
* HS: Upgrade to something other than websocket&lt;br /&gt;
* HS: CONNECTION missing&lt;br /&gt;
* HS: UPGRADE malformed&lt;br /&gt;
* HS: PROTOCOL malformed&lt;br /&gt;
* HS: Cannot match protocol&lt;br /&gt;
* HS: EXT: list too big&lt;br /&gt;
* HS: EXT: failed setting defaults&lt;br /&gt;
* HS: EXT: failed parsing defaults&lt;br /&gt;
* HS: EXT: failed parsing options&lt;br /&gt;
* HS: EXT: Rejects server options&lt;br /&gt;
* HS: EXT: unknown ext&lt;br /&gt;
* HS: Accept hash wrong&lt;br /&gt;
* HS: Rejected by filter cb&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: SO_SNDBUF failed&lt;br /&gt;
* HS: Rejected at CLIENT_ESTABLISHED&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the connection with the server has been established. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLOSED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the websocket connection closed. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called when we receive data from the server. The received data is passed as parameter to the callback function.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== SSL settings ===&lt;br /&gt;
These are the SSL settings which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | SSL setting&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_cert_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | The certificate the client should present to the server on connection.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_private_key_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | Filepath to the client private key.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Log level&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Error&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Warning&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Notice&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Info&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Debug&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Parser&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Extensions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 256&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 512&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Latency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1024&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | User&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Further documentation ==&lt;br /&gt;
* The WebSocket protocol:&lt;br /&gt;
https://tools.ietf.org/html/rfc6455&lt;br /&gt;
* The libwebsockets library:&lt;br /&gt;
https://libwebsockets.org&lt;br /&gt;
* libwebsockets v2.4 documentation:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/index.html&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Verawebsockets</id>
		<title>Verawebsockets</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Verawebsockets"/>
				<updated>2018-03-08T12:07:40Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== What is ''verawebsockets''? ==&lt;br /&gt;
&lt;br /&gt;
'''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).&lt;br /&gt;
&lt;br /&gt;
The intention is to provide websockets support for the Luup plugins, which means that verawebsockets can be used from LuaUPnP as well as from standalone Lua scripts.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== create ===&lt;br /&gt;
Creates a websocket oject, which can be passed to the [[#connect|connect]] function.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''url''' (string): The URL to connect to.&lt;br /&gt;
* '''event_handlers''' (table): A table where the index is the [[#Event_IDs|event ID]], and the value is the callback function name.&lt;br /&gt;
* '''ssl_settings''' (table): A table where the index is the SSL setting name, and the value is the SSL setting value.&lt;br /&gt;
* '''standalone''' (boolean): In ''standalone'' mode the service thread won't be detached, which means that the main thread should wait for the service thread to exit, before exiting itself. This is done by calling the [[#loop|loop]] function from Lua. This mode should be used when the library is loaded from a standalone Lua script, which can afford to block for an undefined amount of time. If the library is loaded from LuaUPnP, ''standalone'' should be '''false''', because LuaUPnP functions can't block for much time, otherwise the watchdog will restart the Luup engine.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
* wso (websocket)&lt;br /&gt;
&lt;br /&gt;
=== connect ===&lt;br /&gt;
Connects to the URL from the websocket object.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* wso (websocket): This is the websocket object returned by the [[#create|create]] function.&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== loop ===&lt;br /&gt;
Parameters:&lt;br /&gt;
* none&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== set_log_level ===&lt;br /&gt;
Set how verbose the logs should be.&lt;br /&gt;
&lt;br /&gt;
The default log level is 0, meaning nothing is logged.&lt;br /&gt;
&lt;br /&gt;
If the library is used from LuaUPnP, the logs can be seen in /tmp/log.Init-LuaUPnP&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* log_levels (int or string): log_levels can be either a number, representing a bit mask where each bit is a log level, or the string &amp;quot;all&amp;quot;, which means all log levels enabled, and it's the equivalent of setting all the bits in the mask (log_levels = 2047). The available log levels are listed here.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Reference ==&lt;br /&gt;
=== Event IDs ===&lt;br /&gt;
Since ''verawebsockets'' is based on the ''libwebsockets'' library, the verawebsockets event IDs are the same as the libwebsockets callback reasons, which are documented here:&lt;br /&gt;
&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/group__usercb.html&lt;br /&gt;
&lt;br /&gt;
These are the event IDs which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Event ID&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | libwebsockets callback reason&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Failed to connect to the server. The reason for the failure is passed as parameter to the callback function. Some possible values are:&lt;br /&gt;
* getaddrinfo (ipv6) failed&lt;br /&gt;
* unknown address family&lt;br /&gt;
* getaddrinfo (ipv4) failed&lt;br /&gt;
* set socket opts failed&lt;br /&gt;
* insert wsi failed&lt;br /&gt;
* lws_ssl_client_connect1 failed&lt;br /&gt;
* lws_ssl_client_connect2 failed&lt;br /&gt;
* Peer hung up&lt;br /&gt;
* read failed&lt;br /&gt;
* HS: URI missing&lt;br /&gt;
* HS: Redirect code but no Location&lt;br /&gt;
* HS: URI did not parse&lt;br /&gt;
* HS: Redirect failed&lt;br /&gt;
* HS: Server did not return 200&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: disallowed by client filter&lt;br /&gt;
* HS: disallowed at ESTABLISHED&lt;br /&gt;
* HS: ACCEPT missing&lt;br /&gt;
* HS: ws upgrade response not 101&lt;br /&gt;
* HS: UPGRADE missing&lt;br /&gt;
* HS: Upgrade to something other than websocket&lt;br /&gt;
* HS: CONNECTION missing&lt;br /&gt;
* HS: UPGRADE malformed&lt;br /&gt;
* HS: PROTOCOL malformed&lt;br /&gt;
* HS: Cannot match protocol&lt;br /&gt;
* HS: EXT: list too big&lt;br /&gt;
* HS: EXT: failed setting defaults&lt;br /&gt;
* HS: EXT: failed parsing defaults&lt;br /&gt;
* HS: EXT: failed parsing options&lt;br /&gt;
* HS: EXT: Rejects server options&lt;br /&gt;
* HS: EXT: unknown ext&lt;br /&gt;
* HS: Accept hash wrong&lt;br /&gt;
* HS: Rejected by filter cb&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: SO_SNDBUF failed&lt;br /&gt;
* HS: Rejected at CLIENT_ESTABLISHED&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the connection with the server has been established. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLOSED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the websocket connection closed. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: center&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called when we receive data from the server. The received data is passed as parameter to the callback function.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== SSL settings ===&lt;br /&gt;
These are the SSL settings which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | SSL setting&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_cert_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | The certificate the client should present to the server on connection.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | client_ssl_private_key_filepath&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding: 0px 10px&amp;quot; | Filepath to the client private key.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Log level&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000; padding: 2px 10px&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Error&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Warning&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Notice&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Info&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Debug&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Parser&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Extensions&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 256&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 512&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | Latency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; text-align: right; padding-right: 10px&amp;quot; | 1024&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000; padding-left: 10px&amp;quot; | User&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Further documentation ==&lt;br /&gt;
* The WebSocket protocol:&lt;br /&gt;
https://tools.ietf.org/html/rfc6455&lt;br /&gt;
* The libwebsockets library:&lt;br /&gt;
https://libwebsockets.org&lt;br /&gt;
* libwebsockets v2.4 documentation:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/index.html&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Verawebsockets</id>
		<title>Verawebsockets</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Verawebsockets"/>
				<updated>2018-03-08T08:56:57Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is ''verawebsockets''? ==&lt;br /&gt;
&lt;br /&gt;
'''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).&lt;br /&gt;
&lt;br /&gt;
The intention is to provide websockets support for the Luup plugins, which means that verawebsockets can be used from LuaUPnP as well as from standalone Lua scripts.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== create ===&lt;br /&gt;
Creates a websocket oject, which can be passed to the [[#connect|connect]] function.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* '''url''' (string): The URL to connect to.&lt;br /&gt;
* '''event_handlers''' (table): A table where the index is the [[#Event_IDs|event ID]], and the value is the callback function name.&lt;br /&gt;
* '''ssl_settings''' (table): A table where the index is the SSL setting name, and the value is the SSL setting value.&lt;br /&gt;
* '''standalone''' (boolean): In ''standalone'' mode the service thread won't be detached, which means that the main thread should wait for the service thread to exit, before exiting itself. This is done by calling the [[#loop|loop]] function from Lua. This mode should be used when the library is loaded from a standalone Lua script, which can afford to block for an undefined amount of time. If the library is loaded from LuaUPnP, ''standalone'' should be '''false''', because LuaUPnP functions can't block for much time, otherwise the watchdog will restart the Luup engine.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
* wso (websocket)&lt;br /&gt;
&lt;br /&gt;
==== Event IDs ====&lt;br /&gt;
Since ''verawebsockets'' is based on the ''libwebsockets'' library, the verawebsockets event IDs are the same as the libwebsockets callback reasons, which are documented here:&lt;br /&gt;
&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/group__usercb.html&lt;br /&gt;
&lt;br /&gt;
These are the event IDs which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Event ID&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | libwebsockets callback reason&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Failed to connect to the server. The reason for the failure is passed as parameter to the callback function. Some possible values are:&lt;br /&gt;
* getaddrinfo (ipv6) failed&lt;br /&gt;
* unknown address family&lt;br /&gt;
* getaddrinfo (ipv4) failed&lt;br /&gt;
* set socket opts failed&lt;br /&gt;
* insert wsi failed&lt;br /&gt;
* lws_ssl_client_connect1 failed&lt;br /&gt;
* lws_ssl_client_connect2 failed&lt;br /&gt;
* Peer hung up&lt;br /&gt;
* read failed&lt;br /&gt;
* HS: URI missing&lt;br /&gt;
* HS: Redirect code but no Location&lt;br /&gt;
* HS: URI did not parse&lt;br /&gt;
* HS: Redirect failed&lt;br /&gt;
* HS: Server did not return 200&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: disallowed by client filter&lt;br /&gt;
* HS: disallowed at ESTABLISHED&lt;br /&gt;
* HS: ACCEPT missing&lt;br /&gt;
* HS: ws upgrade response not 101&lt;br /&gt;
* HS: UPGRADE missing&lt;br /&gt;
* HS: Upgrade to something other than websocket&lt;br /&gt;
* HS: CONNECTION missing&lt;br /&gt;
* HS: UPGRADE malformed&lt;br /&gt;
* HS: PROTOCOL malformed&lt;br /&gt;
* HS: Cannot match protocol&lt;br /&gt;
* HS: EXT: list too big&lt;br /&gt;
* HS: EXT: failed setting defaults&lt;br /&gt;
* HS: EXT: failed parsing defaults&lt;br /&gt;
* HS: EXT: failed parsing options&lt;br /&gt;
* HS: EXT: Rejects server options&lt;br /&gt;
* HS: EXT: unknown ext&lt;br /&gt;
* HS: Accept hash wrong&lt;br /&gt;
* HS: Rejected by filter cb&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: SO_SNDBUF failed&lt;br /&gt;
* HS: Rejected at CLIENT_ESTABLISHED&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the connection with the server has been established. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLOSED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the websocket connection closed. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called when we receive data from the server. The received data is passed as parameter to the callback function.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SSL settings ====&lt;br /&gt;
These are the SSL settings which are currently supported:&lt;br /&gt;
 client_ssl_cert_filepath        : The certificate the client should present to the server on connection.&lt;br /&gt;
 client_ssl_private_key_filepath : Filepath to the client private key.&lt;br /&gt;
&lt;br /&gt;
=== connect ===&lt;br /&gt;
Connects to the URL from the websocket object.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* wso (websocket): This is the websocket object returned by the [[#create|create]] function.&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== loop ===&lt;br /&gt;
Parameters:&lt;br /&gt;
* none&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== set_log_level ===&lt;br /&gt;
Parameters:&lt;br /&gt;
* log_levels (int or string)&lt;br /&gt;
&lt;br /&gt;
== Further documentation ==&lt;br /&gt;
* The WebSocket protocol:&lt;br /&gt;
https://tools.ietf.org/html/rfc6455&lt;br /&gt;
* The libwebsockets library:&lt;br /&gt;
https://libwebsockets.org&lt;br /&gt;
* libwebsockets v2.4 documentation:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/index.html&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Verawebsockets</id>
		<title>Verawebsockets</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Verawebsockets"/>
				<updated>2018-03-08T08:52:55Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is ''verawebsockets''? ==&lt;br /&gt;
&lt;br /&gt;
'''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).&lt;br /&gt;
&lt;br /&gt;
The intention is to provide websockets support for the Luup plugins, which means that verawebsockets can be used from LuaUPnP as well as from standalone Lua scripts.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== create ===&lt;br /&gt;
Creates a websocket oject, which can be passed to the [[#connect|connect]] function.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* url (string): The URL to connect to.&lt;br /&gt;
* event_handlers (table): A table where the index is the [[#event_ids|event ID]], and the value is the callback function name.&lt;br /&gt;
* ssl_settings (table): A table where the index is the SSL setting name, and the value is the SSL setting value.&lt;br /&gt;
* standalone (boolean): In ''standalone'' mode the service thread won't be detached, which means that the main thread should wait for the service thread to exit, before exiting itself.&lt;br /&gt;
 This is done by calling the [[#loop|loop]] function from Lua.&lt;br /&gt;
 This mode should be used when the library is loaded from a standalone Lua script, which can afford to block for an undefined amount of time.&lt;br /&gt;
 If the library is loaded from LuaUPnP, ''standalone'' should be '''false''', because LuaUPnP functions can't block for much time, otherwise the watchdog will restart the Luup engine.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
* wso (websocket)&lt;br /&gt;
&lt;br /&gt;
==== Event IDs ====&lt;br /&gt;
Since ''verawebsockets'' is based on the ''libwebsockets'' library, the verawebsockets event IDs are the same as the libwebsockets callback reasons, which are documented here:&lt;br /&gt;
&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/group__usercb.html&lt;br /&gt;
&lt;br /&gt;
These are the event IDs which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Event ID&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | libwebsockets callback reason&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Failed to connect to the server. The reason for the failure is passed as parameter to the callback function. Some possible values are:&lt;br /&gt;
* getaddrinfo (ipv6) failed&lt;br /&gt;
* unknown address family&lt;br /&gt;
* getaddrinfo (ipv4) failed&lt;br /&gt;
* set socket opts failed&lt;br /&gt;
* insert wsi failed&lt;br /&gt;
* lws_ssl_client_connect1 failed&lt;br /&gt;
* lws_ssl_client_connect2 failed&lt;br /&gt;
* Peer hung up&lt;br /&gt;
* read failed&lt;br /&gt;
* HS: URI missing&lt;br /&gt;
* HS: Redirect code but no Location&lt;br /&gt;
* HS: URI did not parse&lt;br /&gt;
* HS: Redirect failed&lt;br /&gt;
* HS: Server did not return 200&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: disallowed by client filter&lt;br /&gt;
* HS: disallowed at ESTABLISHED&lt;br /&gt;
* HS: ACCEPT missing&lt;br /&gt;
* HS: ws upgrade response not 101&lt;br /&gt;
* HS: UPGRADE missing&lt;br /&gt;
* HS: Upgrade to something other than websocket&lt;br /&gt;
* HS: CONNECTION missing&lt;br /&gt;
* HS: UPGRADE malformed&lt;br /&gt;
* HS: PROTOCOL malformed&lt;br /&gt;
* HS: Cannot match protocol&lt;br /&gt;
* HS: EXT: list too big&lt;br /&gt;
* HS: EXT: failed setting defaults&lt;br /&gt;
* HS: EXT: failed parsing defaults&lt;br /&gt;
* HS: EXT: failed parsing options&lt;br /&gt;
* HS: EXT: Rejects server options&lt;br /&gt;
* HS: EXT: unknown ext&lt;br /&gt;
* HS: Accept hash wrong&lt;br /&gt;
* HS: Rejected by filter cb&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: SO_SNDBUF failed&lt;br /&gt;
* HS: Rejected at CLIENT_ESTABLISHED&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the connection with the server has been established. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLOSED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the websocket connection closed. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called when we receive data from the server. The received data is passed as parameter to the callback function.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SSL settings ====&lt;br /&gt;
These are the SSL settings which are currently supported:&lt;br /&gt;
 client_ssl_cert_filepath        : The certificate the client should present to the server on connection.&lt;br /&gt;
 client_ssl_private_key_filepath : Filepath to the client private key.&lt;br /&gt;
&lt;br /&gt;
=== connect ===&lt;br /&gt;
Connects to the URL from the websocket object.&lt;br /&gt;
Parameters:&lt;br /&gt;
* wso (websocket): This is the websocket object returned by the [[#create|create]] function.&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== loop ===&lt;br /&gt;
Parameters:&lt;br /&gt;
* none&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== set_log_level ===&lt;br /&gt;
Parameters:&lt;br /&gt;
* log_levels (int or string)&lt;br /&gt;
&lt;br /&gt;
== Further documentation ==&lt;br /&gt;
* The WebSocket protocol:&lt;br /&gt;
https://tools.ietf.org/html/rfc6455&lt;br /&gt;
* The libwebsockets library:&lt;br /&gt;
https://libwebsockets.org&lt;br /&gt;
* libwebsockets v2.4 documentation:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/index.html&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Verawebsockets</id>
		<title>Verawebsockets</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Verawebsockets"/>
				<updated>2018-03-08T08:50:39Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: Created page with &amp;quot;== What is ''verawebsockets''? ==  '''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).  The intention is to provid...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is ''verawebsockets''? ==&lt;br /&gt;
&lt;br /&gt;
'''verawebsockets''' is a Lua library based on the '''libwebsockets v2.4''' library (https://libwebsockets.org).&lt;br /&gt;
&lt;br /&gt;
The intention is to provide websockets support for the Luup plugins, which means that verawebsockets can be used from LuaUPnP as well as from standalone Lua scripts.&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
=== create ===&lt;br /&gt;
Creates a websocket oject, which can be passed to the [[#connect|connect]] function.&lt;br /&gt;
Parameters:&lt;br /&gt;
* url (string): The URL to connect to.&lt;br /&gt;
* event_handlers (table): A table where the index is the [[#event_ids|event ID]], and the value is the callback function name.&lt;br /&gt;
* ssl_settings (table): A table where the index is the SSL setting name, and the value is the SSL setting value.&lt;br /&gt;
* standalone (boolean): In ''standalone'' mode the service thread won't be detached, which means that the main thread should wait for the service thread to exit, before exiting itself.&lt;br /&gt;
This is done by calling the [[#loop]] function from Lua.&lt;br /&gt;
This mode should be used when the library is loaded from a standalone Lua script, which can afford to block for an undefined amount of time.&lt;br /&gt;
If the library is loaded from LuaUPnP, ''standalone'' should be '''false''', because LuaUPnP functions can't block for much time, otherwise the watchdog will restart the Luup engine.&lt;br /&gt;
&lt;br /&gt;
Returns:&lt;br /&gt;
* wso (websocket)&lt;br /&gt;
&lt;br /&gt;
==== Event IDs ====&lt;br /&gt;
Since ''verawebsockets'' is based on the ''libwebsockets'' library, the verawebsockets event IDs are the same as the libwebsockets callback reasons, which are documented here:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/group__usercb.html&lt;br /&gt;
&lt;br /&gt;
These are the event IDs which are currently supported:&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Event ID&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | libwebsockets callback reason&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_CONNECTION_ERROR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Failed to connect to the server. The reason for the failure is passed as parameter to the callback function. Some possible values are:&lt;br /&gt;
* getaddrinfo (ipv6) failed&lt;br /&gt;
* unknown address family&lt;br /&gt;
* getaddrinfo (ipv4) failed&lt;br /&gt;
* set socket opts failed&lt;br /&gt;
* insert wsi failed&lt;br /&gt;
* lws_ssl_client_connect1 failed&lt;br /&gt;
* lws_ssl_client_connect2 failed&lt;br /&gt;
* Peer hung up&lt;br /&gt;
* read failed&lt;br /&gt;
* HS: URI missing&lt;br /&gt;
* HS: Redirect code but no Location&lt;br /&gt;
* HS: URI did not parse&lt;br /&gt;
* HS: Redirect failed&lt;br /&gt;
* HS: Server did not return 200&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: disallowed by client filter&lt;br /&gt;
* HS: disallowed at ESTABLISHED&lt;br /&gt;
* HS: ACCEPT missing&lt;br /&gt;
* HS: ws upgrade response not 101&lt;br /&gt;
* HS: UPGRADE missing&lt;br /&gt;
* HS: Upgrade to something other than websocket&lt;br /&gt;
* HS: CONNECTION missing&lt;br /&gt;
* HS: UPGRADE malformed&lt;br /&gt;
* HS: PROTOCOL malformed&lt;br /&gt;
* HS: Cannot match protocol&lt;br /&gt;
* HS: EXT: list too big&lt;br /&gt;
* HS: EXT: failed setting defaults&lt;br /&gt;
* HS: EXT: failed parsing defaults&lt;br /&gt;
* HS: EXT: failed parsing options&lt;br /&gt;
* HS: EXT: Rejects server options&lt;br /&gt;
* HS: EXT: unknown ext&lt;br /&gt;
* HS: Accept hash wrong&lt;br /&gt;
* HS: Rejected by filter cb&lt;br /&gt;
* HS: OOM&lt;br /&gt;
* HS: SO_SNDBUF failed&lt;br /&gt;
* HS: Rejected at CLIENT_ESTABLISHED&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_ESTABLISHED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the connection with the server has been established. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLOSED&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called after the websocket connection closed. No parameter is passed to the callback function.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LWS_CALLBACK_CLIENT_RECEIVE&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Called when we receive data from the server. The received data is passed as parameter to the callback function.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== SSL settings ====&lt;br /&gt;
These are the SSL settings which are currently supported:&lt;br /&gt;
 client_ssl_cert_filepath        : The certificate the client should present to the server on connection.&lt;br /&gt;
 client_ssl_private_key_filepath : Filepath to the client private key.&lt;br /&gt;
&lt;br /&gt;
=== connect ===&lt;br /&gt;
Connects to the URL from the websocket object.&lt;br /&gt;
Parameters:&lt;br /&gt;
* wso (websocket): This is the websocket object returned by the [[#create|create]] function.&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== loop ===&lt;br /&gt;
Parameters:&lt;br /&gt;
* none&lt;br /&gt;
Returns:&lt;br /&gt;
* nothing&lt;br /&gt;
&lt;br /&gt;
=== set_log_level ===&lt;br /&gt;
Parameters:&lt;br /&gt;
* log_levels (int or string)&lt;br /&gt;
&lt;br /&gt;
== Further documentation ==&lt;br /&gt;
* The WebSocket protocol:&lt;br /&gt;
https://tools.ietf.org/html/rfc6455&lt;br /&gt;
* The libwebsockets library:&lt;br /&gt;
https://libwebsockets.org&lt;br /&gt;
* libwebsockets v2.4 documentation:&lt;br /&gt;
https://libwebsockets.org/lws-api-doc-v2.4-stable/html/index.html&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions</id>
		<title>Luup UPnP Variables and Actions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions"/>
				<updated>2018-03-06T09:16:51Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* EnergyMetering1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
This is a list of all the UPnP actions and variables used by MiOS.&lt;br /&gt;
&lt;br /&gt;
Some actions and variables have self-explanatory names, so there's a dash ('-') instead of the description.&lt;br /&gt;
&lt;br /&gt;
== HomeAutomationGateway1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HomeAutomationGateway1&lt;br /&gt;
*'''File''': S_HomeAutomationGateway1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataVersion&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A number that increases each time the data changes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Unique Device Name of the UPnP device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload the LuaUPnP engine.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ModifyUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | inUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Make changes to the UserData.&lt;br /&gt;
*&amp;lt;tt&amp;gt;inUserData&amp;lt;/tt&amp;gt; is the new UserData object which will be added to the UserData or will replace an existent UserData object.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DataFormat&amp;lt;/tt&amp;gt; must be ''json''.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is ''1'' the LuaUPnP engine will reload after the UserData is modified.&lt;br /&gt;
&lt;br /&gt;
For more information read the [[ModifyUserData]] page.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataFormat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Create or change the value of a variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; can be an UDN or a number.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Service&amp;lt;/tt&amp;gt; is the service ID of the variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Variable&amp;lt;/tt&amp;gt; is the variable name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Value&amp;lt;/tt&amp;gt; is the new variable value.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Service&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Variable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | RunScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Run the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SceneOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Turn off all the devices from DEVICE_CATEGORY_DIMMABLE_LIGHT and DEVICE_CATEGORY_SWITCH from the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | RunLua&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Run the given Lua code. If &amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; is specified, the code is run using that device's interface.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Code&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | CreateDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | deviceType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | Create a device using the given parameters.&lt;br /&gt;
*&amp;lt;tt&amp;gt;deviceType&amp;lt;/tt&amp;gt; is the UPnP device type.&lt;br /&gt;
*&amp;lt;tt&amp;gt;internalID&amp;lt;/tt&amp;gt; is the specific ID (also known as ''altid'') of the device; for example, for Z-Wave devices this is the Node ID, and for Insteon device it is the Insteon ID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Description&amp;lt;/tt&amp;gt; is the device name, which is shown to the user on the dashboard.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpDevFilename&amp;lt;/tt&amp;gt; is the UPnP device description file name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpImplFilename&amp;lt;/tt&amp;gt; is the implementation file to use.&lt;br /&gt;
*If the device is IP based, &amp;lt;tt&amp;gt;IpAddress&amp;lt;/tt&amp;gt; is the IP address and port of the device.&lt;br /&gt;
*If this should be the child of another device, &amp;lt;tt&amp;gt;DeviceNumParent&amp;lt;/tt&amp;gt; is the device number of the parent device.&lt;br /&gt;
*&amp;lt;tt&amp;gt;RoomNum&amp;lt;/tt&amp;gt; is the number of the room the device will be in.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; tells the device which plugin to use. The plugin will be installed automatically if it's not already installed.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; is a string containing the variables you want set when the device is created. You can specify multiple variables by separating them with a line feed ('\n'), and use ',' and '=' to separate service, variable and value, like this: &amp;lt;tt&amp;gt;service,variable=value\nservice,variable=value\n&amp;lt;/tt&amp;gt;...&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is '''1''', the Luup engine will be restarted after the device is created.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | internalID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpDevFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpImplFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Username&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Password&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNumParent&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | DeleteDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Delete the device given either through its number, or through its UDN.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | CreatePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Create a plugin with the &amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; number and &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; version. &amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; are the variables that will be set when the device is created. For more information look at the description of the '''CreateDevice''' action above.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Version&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DeletePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Uninstall the given plugin.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | CreatePluginDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Creates a device for plugin #&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ImportUpnpDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | LogIpRequest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetHouseMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Changes the house mode.&lt;br /&gt;
&amp;lt;tt&amp;gt;Mode&amp;lt;/tt&amp;gt; can be:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = Home&lt;br /&gt;
*&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = Away&lt;br /&gt;
*&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = Night&lt;br /&gt;
*&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = Vacation&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HaDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HaDevice1&lt;br /&gt;
*'''File''': S_HaDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CommFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains the communication status with the device:&lt;br /&gt;
* 0 : The communication with the device is OK.&lt;br /&gt;
* 1 : The communication with the device is not OK (e.g. lost connection).&lt;br /&gt;
* 2 : The device is reachable, but there's an authentication error (e.g. invalid credentials).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The configuration state of the device:&lt;br /&gt;
*-3 = Configuration failed&lt;br /&gt;
*-2 = Configuration in progress&lt;br /&gt;
*-1 = Device waiting to be configured&lt;br /&gt;
*0 = Device not configured&lt;br /&gt;
*1 = Device successfully configured&lt;br /&gt;
*2 = Device partially configured&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoConfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically check the routing info for this every 12 hours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The battery level reported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the &amp;lt;tt&amp;gt;BatteryLevel&amp;lt;/tt&amp;gt; was reported.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeCheck&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Only for devices that are capable of implementing time, this is when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeOffset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | For &amp;lt;tt&amp;gt;LastTimeCheck&amp;lt;/tt&amp;gt;, this is the timezone offset from UTC when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device information was last updated. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FirstConfigured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device was first configured. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreRoom&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used only by the MiOS scene controller. Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Commands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of &amp;lt;tt&amp;gt;ControlCodes&amp;lt;/tt&amp;gt; for the enabled UI controls. If the &amp;lt;tt&amp;gt;ControlCode&amp;lt;/tt&amp;gt; of an UI control (e.g. button) is not in this list, the button will be disabled (greyed out). If this variable is missing, all controls will be enabled. If this variable is empty, all controls will be disabled.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IODevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The device number to connect to for IO. (this is on the master device)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IOPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The port to receive connections on from &amp;lt;tt&amp;gt;IODevice&amp;lt;/tt&amp;gt;. (this is on the serial port)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReverseOnOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, the commands for some devices are reversed (e.g. the On command will turn the device Off, and vice versa). Not all devices support this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_Alarm&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Currently used only by the water leak sensor, contains the alarm code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeSetting&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains the state of the device for each house mode.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;&amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;...&lt;br /&gt;
&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is empty, the sensor is disarmed/bypassed.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is &amp;quot;A&amp;quot;, the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1:;2:A;3:A;4:A&lt;br /&gt;
&lt;br /&gt;
*In &amp;lt;tt&amp;gt;Home&amp;lt;/tt&amp;gt;(1) mode the sensor is disarmed;&lt;br /&gt;
*in &amp;lt;tt&amp;gt;Away&amp;lt;/tt&amp;gt;(2), &amp;lt;tt&amp;gt;Night&amp;lt;/tt&amp;gt;(3) and &amp;lt;tt&amp;gt;Vacation&amp;lt;/tt&amp;gt;(4) modes the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Children&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of KitDevice numbers.&lt;br /&gt;
LuaUPnP will create a child device for every item in the list, with the specified KitDevice properties.&lt;br /&gt;
&lt;br /&gt;
Can be used to add children to devices which don't have MultiChannel support.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the polls are doing, where 5.0 means that the last 50 polls were successful and 0.0 means that all the last 50 polls were unsuccessful.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the wakeups are being received, where 5.0 means that the we received the last 50 wakeups when they have suppose to be sent and 0.0 means that we didn't receive any of the 50 last wakeups that the device should have sent&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''See the description of this variable in ZWaveDevice1 section, because it should belong to the service urn:micasaverde-com:serviceId:ZWaveDevice1, but it was kept in urn:micasaverde-com:serviceId:HaDevice1 to maintain backward compatibility.'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeConfiguration&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Implementation of custom preset modes for any device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;[&amp;amp;#124;&amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;upnp_action&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;service&amp;amp;gt;/&amp;amp;lt;action&amp;amp;gt;/&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;[&amp;amp;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the value is '?', it means that it's a wildcard and the ''ModeSettings'' variable should contain a comma separated list of values in order to substitute this '?' wildcard. If the value is not '?', then the value is fixed and it should be URL encoded.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 h;h code;urn:upnp-org:serviceId:SwitchPower1/SetTarget/newTargetValue=?&amp;amp;otherParameter=45&amp;amp;another=?&amp;amp;#124;s;s code;urn:upnp-org:serviceId:Dimming1/SetTargetLevel/newLevel=34&amp;amp;other=?&amp;amp;another=4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeControls&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used to tell the UI what controls to show in the House modes configuration page for the actions in the ''CustomModeConfiguration'' variable.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;;&amp;lt;control info for arg #2&amp;gt;;..;&amp;lt;control info for arg #N&amp;gt;[&amp;amp;#124;&amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | StressTest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stress test the Z-Wave device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove the device from the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ToggleState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Toggle the state of the device (e.g. if the device it's Off, turns it On). The device must have a binary state (On/Off, Locked/Unlocked, etc.).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ZWaveDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveDevice1&lt;br /&gt;
*'''File''': S_ZWaveDevice1.xml ''(nonexistent)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the polling frequency for a node (i.e. the minimum number of seconds between two poll commands to the same node). If this variable doesn't exist or is blank, the default polling frequency set in the &amp;lt;tt&amp;gt;ZWaveNetwork1&amp;lt;/tt&amp;gt;'s &amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt; variable will be used. If it's '''0''', polling will be disabled for this node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollCommands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of command classes/commands to poll. '&amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt;' means the device won't respond to any poll.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChEndpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Neighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbor devices' node IDs. '1' is the Vera's node ID.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NeighborsInverse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbors that see us.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Capabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The first 6 numbers in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are what is reported by the &amp;lt;tt&amp;gt;ZW_GetNodeProtocolInfo&amp;lt;/tt&amp;gt; function: Capability, Security, Reserved, Basic Device Class [, Generic Device Class, Specific Device Class]. If the &amp;lt;tt&amp;gt;Capability&amp;lt;/tt&amp;gt; is &amp;gt;= 128, then the device listens for commands, otherwise it's a battery operated device that only wakes up occasionally. After the '&amp;amp;#124;' in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are the command classes supported. More information here: [[ZWave Command Classes]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SecurityFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't talk to this node with security even if the node reports it can.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastReset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When we last reset the node association. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How often this battery operated device should wake up to report its status. The default value is 1800 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredWakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The wakeup interval already configured on the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastWakeup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device last woke up and reported its status. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastRouteUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device's routing information was last checked/updated. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Health&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A rating from 0-5. A large number means that MiOS can communicate with it easily.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HealthDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The date the rating was assigned. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings read from the device.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number,variable1_value,variable2_number,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings set by the user.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number-variable1_description,variable1_data_type,variable1_value,variable2_number-variable2_description,variable2_data_type,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This are the association settings read from the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave associations for a device are stored in this variable.&lt;br /&gt;
The associations are delimited by ';', 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 IDs, not device IDs (ie the 'altid' in the UI). If the node ID is 'z', it means the node ID of the device for which the variable is set.&lt;br /&gt;
&lt;br /&gt;
For multi-channel there is a '.' following the node ID with the endpoint ID.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1,3.4,7;2,5.1,8&lt;br /&gt;
&lt;br /&gt;
Means group #1 is associated with node #3 endpoint #4 and with node #7, which is non-multi-channel; group #2 is associated with node #5 endpoint #1, and with node #8.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of association groups supported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NonceACK&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManufacturerInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device information. Format:&lt;br /&gt;
 ManufacturerID,ProductType,ProductID&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is what's reported by the COMMAND_CLASS_VERSION command VERSION_REPORT. There are 5 values: Z-Wave Library Type, Z-Wave Protocol Version, Z-Wave Protocol Sub Version, Application Version, Application Sub Version. The &amp;lt;tt&amp;gt;Application Version&amp;lt;/tt&amp;gt; is specific to the device and not defined by Z-Wave.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetPointInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of the supported setpoint types:&lt;br /&gt;
*&amp;lt;tt&amp;gt;H1&amp;lt;/tt&amp;gt; = Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C1&amp;lt;/tt&amp;gt; = Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;F1&amp;lt;/tt&amp;gt; = Furnace&lt;br /&gt;
*&amp;lt;tt&amp;gt;D1&amp;lt;/tt&amp;gt; = Dry Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;MA&amp;lt;/tt&amp;gt; = Moist Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;AC&amp;lt;/tt&amp;gt; = Auto changeover&lt;br /&gt;
*&amp;lt;tt&amp;gt;H2&amp;lt;/tt&amp;gt; = Energy Save Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C2&amp;lt;/tt&amp;gt; = Energy Save Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;AH&amp;lt;/tt&amp;gt; = Away Heating&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of the command classes supported by this device. (hexadecimal numbers)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InitialName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The name that was initially set when the node was first added.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified name when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;VariablesSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredAssoc&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;AssociationSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Documentation&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL of the documentation used on the ''Device Options'' page.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The meter type:&lt;br /&gt;
*1 = electric&lt;br /&gt;
*2 = gas&lt;br /&gt;
*3 = water&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A bit map of the supported meter scales.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | List of the supported alarm types.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollOk, PollTxFail, PollNoReply&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | These variables are incremented each time the last poll job has the status they describe. They are reset after each network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A route specified by the end-user. This is a '''dot'''-separated list of nodes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllRoutesFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when all the manual routes have failed.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This contains a list of various routes chosen by profilings.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 route1_node1.route1_node2...-route1_score[x],route2_node1.route2_node2...-route2_score[x],...&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;score&amp;lt;/tt&amp;gt; is a measure of latency and accuracy, the lower the number, the better. '&amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;' means that the last attempt to use this route failed, so it won't be used anymore.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreDirectScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SwitchMlSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BasicSetCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining actions for BASIC_SET messages.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Value&amp;gt;=&amp;lt;Action&amp;gt;&amp;lt;Endpoint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*Value &amp;amp;nbsp;: the BASIC_SET Value; if Value is &amp;quot;XX&amp;quot;, it means any value&lt;br /&gt;
*Action &amp;amp;nbsp;: the Action to perform; the supported values are: T&amp;lt;tt&amp;gt;=Trip&amp;lt;/tt&amp;gt;, U&amp;lt;tt&amp;gt;=Untrip&amp;lt;/tt&amp;gt;, O&amp;lt;tt&amp;gt;=On&amp;lt;/tt&amp;gt;, F&amp;lt;tt&amp;gt;=Off&amp;lt;/tt&amp;gt;, D&amp;lt;tt&amp;gt;=Dim&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Endpoint &amp;amp;nbsp;: the Endpoint device ID (altid); if Endpoint=0, it means the parent node, or the current node if the device has no children&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=Ue1,FF=Te1&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Untrip endpoint &amp;quot;e1&amp;quot;; if receive 0xFF, Trip endpoint &amp;quot;e1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;XX=D02&amp;lt;/code&amp;gt; =&amp;gt; Dim endpoint 02 to whatever value received&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=T0,FF=U0&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Trip the current node; if receive 0xFF, Untrip the current node&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SupportedMRTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining which meter report types are supported by the device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;;&amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*CC Hex &amp;amp;nbsp;: the Hex value of the command class (without 0x):&lt;br /&gt;
**0x31 for COMMAND_CLASS_SENSOR_MULTILEVEL&lt;br /&gt;
**0x32 for COMMAND_CLASS_METER&lt;br /&gt;
*Supported Type &amp;amp;nbsp;: The HEX value of the type supported for the Command class without 0x&lt;br /&gt;
**Supported types for COMMAND_CLASS_SENSOR_MULTILEVEL:&lt;br /&gt;
***Temperature = 0x01&lt;br /&gt;
***General = 0x02&lt;br /&gt;
***Luminance = 0x03&lt;br /&gt;
***Power = 0x04&lt;br /&gt;
***RelativeHumidity = 0x05&lt;br /&gt;
***Velocity = 0x06&lt;br /&gt;
***Direction = 0x07&lt;br /&gt;
***AtmosphericPressure = 0x08&lt;br /&gt;
***BarometricPressure = 0x09&lt;br /&gt;
***SolarRadiation = 0x0A&lt;br /&gt;
***DewPoint = 0x0B&lt;br /&gt;
***RainRate = 0x0C&lt;br /&gt;
***TideLevel = 0x0D&lt;br /&gt;
***Weight = 0x0E&lt;br /&gt;
***Voltage = 0x0F&lt;br /&gt;
***Current = 0x10&lt;br /&gt;
***CO2level = 0x11&lt;br /&gt;
***AirFlow = 0x12&lt;br /&gt;
***TankCapacity = 0x13&lt;br /&gt;
***Distance = 0x14&lt;br /&gt;
***SeismicIntensity = 0x19&lt;br /&gt;
***UltraViolet = 0x1B&lt;br /&gt;
&lt;br /&gt;
**Supported types for COMMAND_CLASS_METER:&lt;br /&gt;
***Electric=0x01&lt;br /&gt;
***Gas=0x02&lt;br /&gt;
***Water=0x03&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;31-0F,0E,10,1B;32-01,03&amp;lt;/code&amp;gt; =&amp;gt; Device supports Voltage, Weight, Current and UltraViolet for COMMAND_CLASS_SENSOR_MULTILEVEL and Electric and Water from COMMAND_CLASS_METER&lt;br /&gt;
&lt;br /&gt;
If the variable is empty it will be treated as support anything. If the variable does not contain a command class that command class will be treated as support everything.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NoChildren&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this variable is '''1''', delete the child devices, and don't allow the creation of other child devices, to avoid creating ghost devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''(NOTE: this is its new service. ''urn:micasaverde-com:serviceId:HaDevice1'' was left unchanged to mantain backward compatibility.)'''&lt;br /&gt;
Allows setting what each Alarm Type does for devices using COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION. The format is:&lt;br /&gt;
&lt;br /&gt;
 AlarmTypes:AlarmLevels:AlarmCode:Action;AlarmTypes:AlarmLevels:AlarmCode:Action&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmTypes&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;type1,type2-type3,!type4&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmLevels&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;00,01,05-20,!FF&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;SMOKE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAMPER_ALARM&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Action&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = don't update the ''Tripped'' variable, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = update the ''Tripped'' variable, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = ignore the message (i.e. don't update the ''sl_Alarm'' variable)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 01:FF:SMOKE:1;0C:FF::1;0D:FF:TAMPER_ALARM:0&lt;br /&gt;
&lt;br /&gt;
*if Alarm Type is ''0x01'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;SMOKE&amp;quot; and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0C'' and the Alarm Level is ''0xFF'', don't update the ''sl_Alarm'' variable, and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0D'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;TAMPER_ALARM&amp;quot;, but don't trip the sensor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypesV2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows customizing the handling of the COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION &amp;gt;= v2 messages.&lt;br /&gt;
The format is a ';' separated list of tokens. Format of each token:&lt;br /&gt;
&lt;br /&gt;
 TypesV1:LevelV1:NotificationStatus:NotificationType:Event:AlarmCode:TripValue&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;TypesV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1_v1,type2_v1-type3_v1,!type4_v1, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;LevelV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,02-05,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationStatus&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 01-FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationType&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1,type2-type3,!type4, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Event&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,03-5A,!04,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: SMOKE, CO, TAMPER_ALARM, etc. Leave empty if you don't want to set an alarm code.&lt;br /&gt;
*&amp;lt;tt&amp;gt;TripValue&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 0 = Untrip, 1 = Trip, C = don't update the Tripped variable (only the Alarm Code), X = Ignore&lt;br /&gt;
&lt;br /&gt;
If the TypeV1 or NotificationType are not XX and if there was no match, the function will try the next token.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGroups&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, associate ourselves only with these groups, not all groups. The groups should be given as a comma separated list, like this:&lt;br /&gt;
 1,3,4,255&lt;br /&gt;
&lt;br /&gt;
You could add this variable with a value = 0 if you want to be in NO association groups.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreCommandClass&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows ignoring specific command classes (CC) for that device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC #1&amp;gt;-&amp;lt;Command #1&amp;gt;,&amp;lt;Command #2&amp;gt;;&amp;lt;CC #2&amp;gt;-*;&amp;lt;CC #3&amp;gt;-&amp;lt;Command #1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Both the command classes and the commands are given by their hex code.&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; is used as an wild card indicating all commands.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 26-03,05;71-*;20-03&lt;br /&gt;
&lt;br /&gt;
That means: ignore CC 26 commands 03 and 05, all commands from CC 71, and CC 20 command 03.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TemperatureScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the thermostat setpoint.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;Precision,Scale,Size&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*Precision: The number of decimals&lt;br /&gt;
*Scale: 0 = Celsius, 1 = Fahrenheit&lt;br /&gt;
*Size: Size of the setpoint in bits: number of bits = 2&amp;lt;sup&amp;gt;2+''Size''&amp;lt;/sup&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Size || Number of bits&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 16&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 32&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ZWaveNetwork1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveNetwork1&lt;br /&gt;
*'''File''': S_ZWaveNetwork1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The status of the Z-Wave network:&lt;br /&gt;
*0 = Status not set&lt;br /&gt;
*1 = OK&lt;br /&gt;
*2 = Quiting&lt;br /&gt;
*3 = Waiting to quit&lt;br /&gt;
*4 = No dongle&lt;br /&gt;
*5 = Configuring: still running init/configure scripts&lt;br /&gt;
*6 = Failure&lt;br /&gt;
*7 = Initializing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusText&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Full Z-Wave network status description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastError&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The last Z-Wave error in the network&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the Z-Wave component of the LuaUPnP engine started.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastDongleBackup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave dongle backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastHeal&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Z-Wave version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The unique ID of the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Role&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave specific stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TO3066&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the port where MiOS will search for the Z-Wave dongle. On Vera Lite, this is &amp;lt;tt&amp;gt;/dev/ttyS0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LockComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't search for the Z-Wave dongle on the other available ports if it doesn't find it on &amp;lt;tt&amp;gt;ComPort&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Use45&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use Z-Wave version 3.20 instead of 2.78.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UseMR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use MiOS routing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LimitNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | With MiOS routing: if this is &amp;quot;1&amp;quot;, when the routing table is created, consider only Z-Wave's neighbors as valid options.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically poll the Z-Wave devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds after the LuaUPnP engine has (re-)started before the polling loop begins.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds MiOS must not have transmitted any non-poll command before the next poll command is sent.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds between poll commands.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Minimum number of seconds between poll commands to the same node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneIDs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used for scene controllers. This is a CSV where each item has this format: &amp;lt;tt&amp;gt;node#-button#=ZWaveSceneID&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ResetNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ResetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Reset the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ResetMode&amp;lt;/tt&amp;gt; can be &amp;quot;SIS&amp;quot; or &amp;quot;SUC&amp;quot;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;HomeID&amp;lt;/tt&amp;gt; is a 32 bit hex number representing the new HomeID. If this parameter doesn't exist or is 0, MiOS will generate the new HomeID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ZeroMemory&amp;lt;/tt&amp;gt;: if this is &amp;quot;1&amp;quot;, the memory will be zeroed before resetting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ZeroMemory&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | PutByte&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Used to convert Z-Wave from 2.78 to 3.20 in which case the &amp;lt;tt&amp;gt;StartAddress&amp;lt;/tt&amp;gt; parameter must be &amp;quot;convert502_452&amp;quot; and the rest are ignored.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ReconfigureAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FailedOnly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the Z-Wave nodes. If &amp;lt;tt&amp;gt;FailedOnly&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, only the devices that failed to configure are reconfigured.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Get network update from SUC/SIS.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Update the neighbor nodes of the given device. &amp;lt;tt&amp;gt;Device&amp;lt;/tt&amp;gt; is the device number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | BackupDongle&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Restore&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Backs up the Z-Wave network. The backup is in &amp;lt;tt&amp;gt;/etc/cmh/dongle.dump&amp;lt;/tt&amp;gt;. If &amp;lt;tt&amp;gt;Restore&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, the Z-Wave network is restored from the backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | PollAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | RemoveNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | Puts Vera in exclude mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the exclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be excluded. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in exclude mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit exclude mode after a node is excluded.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits exclude mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | AddNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Puts Vera in include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the inclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be included. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in include mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit include mode after a node is included.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ControllerShift&amp;lt;/tt&amp;gt; must be &amp;quot;0&amp;quot;.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PK_KitDevice&amp;lt;/tt&amp;gt; is the KitDevice number of the device we expect to be included.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ControllerShift&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PK_KitDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DownloadNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Copy the Z-Wave network from a master controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | HealNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryMinutes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Heals/consolidates the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt;: how many minutes to wait for battery operated devices to be discovered.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Node&amp;lt;/tt&amp;gt; is not blank, then only this node will be repaired.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt; is the number of cycles to stress test each node.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Configure&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then all the devices will be re-configured when done.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;ManualRoute&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then only update MiOS routing (overrides other settings).&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt; is the starting heal stage. The valid values are:&lt;br /&gt;
**1 = Request network update.&lt;br /&gt;
**2 = Request neighbor node update.&lt;br /&gt;
**3 = Update the routing tables and neighbor nodes.&lt;br /&gt;
**4 = Calculate the best routes.&lt;br /&gt;
**5 = Re-configure all nodes.&lt;br /&gt;
**6 = Wait &amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt; to request neighbor node update and configure all battery operated nodes.&lt;br /&gt;
**7 = Do a stress test for &amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopStage&amp;lt;/tt&amp;gt;: Same as &amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StressCycles&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | SetPolling&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IsTemporary&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | Set the polling parameters.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;IsTemporary&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then these polling settings will be lost when the LuaUPnP engine is reloaded.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollingEnabled&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayInitial&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayDeadTime&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollMinDelay&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SendData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Sends the Z-Wave &amp;lt;code&amp;gt;Data&amp;lt;/code&amp;gt; to the Z-Wave &amp;lt;code&amp;gt;Node&amp;lt;/code&amp;gt;.&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
1. Set parameter 29 to &amp;quot;3&amp;quot; on node 15:&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=15&amp;amp;Data=x70%204%2029%201%203&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=15, Data=&amp;quot;x70 4 29 1 3&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Turn on a light (node 7):&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=7&amp;amp;Data=x20%201%20xFF&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=7, Data=&amp;quot;x20 1 xFF&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SimulateIncomingData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Calls the Z-Wave message handler for the given data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USBUIRT1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:USBUIRT1&lt;br /&gt;
*'''File''': S_USBUIRT.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the USB port the UIRT is connected to. On Vera Lite this is &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Camera1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Camera1&lt;br /&gt;
*'''File''': S_Camera1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VideoURLs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable defines the streaming parameters, and without it streaming doesn't work. This variable has this structure:&lt;br /&gt;
&amp;lt;tt&amp;gt;Info1:URL1:Info2:URL2:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt; parameters are:&lt;br /&gt;
&lt;br /&gt;
1. The protocol: can be &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. HTTP authentication required: 1 = yes, send the username and password in the request, 0 = no, don't send the username and password&lt;br /&gt;
&lt;br /&gt;
3. Video codec: &amp;lt;tt&amp;gt;mpeg4&amp;lt;/tt&amp;gt; &amp;amp;#124; &amp;lt;tt&amp;gt;mjpeg&amp;lt;/tt&amp;gt; &amp;amp;#124; etc.&lt;br /&gt;
&lt;br /&gt;
4. Audio codec: blank = no audio&lt;br /&gt;
&lt;br /&gt;
5. Resolution: &amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt; = thumbnail, &amp;lt;tt&amp;gt;s&amp;lt;/tt&amp;gt; = small, &amp;lt;tt&amp;gt;m&amp;lt;/tt&amp;gt; = medium, &amp;lt;tt&amp;gt;l&amp;lt;/tt&amp;gt; = large&lt;br /&gt;
&lt;br /&gt;
6. Width: 640&lt;br /&gt;
&lt;br /&gt;
7. Height: 480&lt;br /&gt;
&lt;br /&gt;
8. Players: &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;, a string of characters indicating known good players. &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt; = Quicktime plugin, &amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt; = Android, &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; = iPhone, &amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt; = normal web browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; is the streaming URL compatible with the players specified in &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Currently only the &amp;lt;tt&amp;gt;protocol&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;HTTP auth&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;players&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; parameters are used. The rest of the parameters are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;VideoURLs&amp;lt;/tt&amp;gt; example for VistaCam:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;rtsp,0,mpeg4,,m,640,480,qai:img/media.sav:http,0,mjpeg,,m,640,480,w:img/video.mjpeg:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the URL to get a snapshot from the camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RingBuffer&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable contains the ring buffer parameters.&lt;br /&gt;
The format is: &amp;lt;code&amp;gt;Enabled,BufferSeconds,NumFramesToPurge,Format,URL&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt; can be '''0''' or '''1'''. If it's '''1''', the ring buffer is enabled.&lt;br /&gt;
*&amp;lt;code&amp;gt;BufferSeconds&amp;lt;/code&amp;gt;: how many seconds of video to keep in the buffer. This is limited by the available memory on Vera. Setting this to a large value will cause instability.&lt;br /&gt;
*&amp;lt;code&amp;gt;NumFramesToPurge&amp;lt;/code&amp;gt;: how many frames to wait before attempting to purge.&lt;br /&gt;
*&amp;lt;code&amp;gt;Format&amp;lt;/code&amp;gt; can be '''2'''=MJPEG, '''3'''=MP4.&lt;br /&gt;
*&amp;lt;code&amp;gt;URL&amp;lt;/code&amp;gt; is the streaming URL.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedSensors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: archive a photo whenever one of the sensors is tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SensorArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many seconds to archive the video after the sensor(s) are tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedLights&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: which lights should be turned on when viewing this camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightOptions&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When to turn on the lights:&lt;br /&gt;
*&amp;lt;tt&amp;gt;V&amp;lt;/tt&amp;gt;: when I view the camera from the web or phone;&lt;br /&gt;
*&amp;lt;tt&amp;gt;S&amp;lt;/tt&amp;gt;: when the sensor(s) above are tripped and they are armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;: when the sensors above are tripped and they are *not* armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;: when you take an automatic picture for the archive;&lt;br /&gt;
&lt;br /&gt;
So &amp;lt;tt&amp;gt;VSBA&amp;lt;/tt&amp;gt; means do them all.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Archives a picture from the camera every this number of seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchivePreserveDays&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many days to keep the pictures in the archive.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Streams&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains a list separated by semicolons, where each element in the list has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;stream type&amp;amp;gt;,&amp;amp;lt;protocol&amp;amp;gt;,&amp;amp;lt;url&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The ''stream types'' currently supported are: &amp;lt;tt&amp;gt;flv&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;flv_low&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp_low&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The types with the &amp;quot;_low&amp;quot; suffix are the low bandwidth versions, and are used when streaming through the relay servers.&lt;br /&gt;
&lt;br /&gt;
*The supported ''protocols'' are: &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;flv,http,/img/media.flv;rtsp,rtsp,/img/media.sav;flv_low,http,/img/media.flv?stream=2;rtsp_low,rtsp,/img/media.sav?stream=2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PanTiltZoom1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:PanTiltZoom1&lt;br /&gt;
*'''File''': S_PanTiltZoom1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveLeft&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveRight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveUp&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveDown&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomIn&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomOut&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | GoToPreset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | presetNumber&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Moves the camera to the given preset.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SwitchPower1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:SwitchPower1&lt;br /&gt;
*'''File''': S_SwitchPower1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target state of the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The current state of the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target state of the device. Used to turn a device On or Off.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WindowCovering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:WindowCovering1&lt;br /&gt;
*'''File''': S_WindowCovering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Up&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Down&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stop&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dimming1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:Dimming1&lt;br /&gt;
*'''File''': S_Dimming1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target dimming value; it doesn't represent the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TurnOnBeforeDim&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicates that this device needs to turn on before setting the dimming level.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowZeroLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This device allows to set 0% level in ON state.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetLoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newLoadlevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired dimming level. Used to adjust the dimming level of a device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DoorLock1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:DoorLock1&lt;br /&gt;
*'''File''': S_DoorLock1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the target (desired) door state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current door state. &amp;quot;1&amp;quot; = locked, &amp;quot;0&amp;quot; = unlocked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of PIN codes.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=2&amp;gt;user_code_id,active,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=3&amp;gt;next_available_user_code_id\t&lt;br /&gt;
 user_code_id,active,date_added,date_used,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;VERSION&amp;lt;/tt&amp;gt; is used to track syntax changes.&lt;br /&gt;
*&amp;lt;tt&amp;gt;active&amp;lt;/tt&amp;gt; can be one of the following values:&lt;br /&gt;
**&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; = The code isn't programmed.&lt;br /&gt;
**&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''doesn't''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''does''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = The code is programmed into the lock and will be removed by software later.&lt;br /&gt;
**&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = The code is not programmed into the lock, but it will be programmed later by the software.&lt;br /&gt;
**&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt; = The code is programmed into the lock which supports hardware-based scheduling and will enable/disable it automatically.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid&amp;lt;/tt&amp;gt; is an auto-incrementing number.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid_lock&amp;lt;/tt&amp;gt; is the ID in the lock.&lt;br /&gt;
*The restriction type: '''&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;''' (''weekly'') or '''&amp;lt;tt&amp;gt;d&amp;lt;/tt&amp;gt;''' (''daily repeating'') = day of week based, '''&amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt;''' = time based (''yearly'')&lt;br /&gt;
*&amp;lt;tt&amp;gt;[d&amp;amp;#124;s]&amp;lt;/tt&amp;gt;: internal stuff.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumSchedules&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Maximum number of restrictions supported by the door lock.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 max_weekly,max_yearly,max_daily_repeating&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_weekly&amp;lt;/tt&amp;gt; is the number of weekly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_yearly&amp;lt;/tt&amp;gt; is the number of yearly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_daily_repeating&amp;lt;/tt&amp;gt; is the number of daily repeating restrictions slots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MinPinSize ''and'' MaxPinSize&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The minimum and maximum number of digits of the PIN code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowedPinChars&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Which characters are allowed in a PIN code.&lt;br /&gt;
The only format which is currently supported is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;-D&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
* D&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; is the smallest digit allowed;&lt;br /&gt;
* D&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; is the largest digit allowed.&lt;br /&gt;
Example: &amp;lt;code&amp;gt;2-7&amp;lt;/code&amp;gt; : allow only digits &amp;gt;= 2 and &amp;lt;= 7.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the last used PIN code:&lt;br /&gt;
 UserID=&amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot; UserName=&amp;quot;&amp;lt;pin_code_name&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_PinFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This becomes &amp;quot;1&amp;quot; when a bad PIN code is entered.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_CodeChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockButton&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the Lock button has been pressed on the lock keypad.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the lock fails to operate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UnauthUser&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the user code was entered outside of a valid date.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_VeryLowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is very low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UsesPinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;0&amp;quot;, this door lock doesn't use PIN codes. (e.g. Danalock)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target (desired) state of the door. Used to lock and unlock the door.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCodeName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Adds a PIN code. This code will be added to the &amp;lt;code&amp;gt;PinCodes&amp;lt;/code&amp;gt; variable and to the door lock.&lt;br /&gt;
*&amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; is the PIN code name.&lt;br /&gt;
*&amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; is the new PIN code.&lt;br /&gt;
*&amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; is the PIN code slot number.&lt;br /&gt;
*&amp;lt;code&amp;gt;purge&amp;lt;/code&amp;gt;: if this is '''&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;''', all the schedules programmed into the door lock will be removed.&lt;br /&gt;
*&amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is a json that looks like this:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;user_code&amp;quot;&amp;amp;nbsp;: {&lt;br /&gt;
      &amp;quot;slot&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot;,        // Used when adding/updating a PIN code.&lt;br /&gt;
      &amp;quot;name&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;name&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;code&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_code&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;user&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;restriction_slot&amp;gt;&amp;quot; // Used when adding/updating restrictions.&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;weekly_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;136&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;12:34&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;23:45&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;25&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;13:46&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;21:09&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;daily_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
**''&amp;lt;tt&amp;gt;slot&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;If the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; parameter is present, &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; The parameters from &amp;lt;code&amp;gt;SetPinValidityDate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SetPinValidityWeekly&amp;lt;/code&amp;gt; are also accepted. Internally, this action calls the implementation functions of those actions if &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;, respectively &amp;lt;code&amp;gt;DayOfWeek&amp;lt;/code&amp;gt; parameters are given. The parameters in the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; take precedence over the other parameters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | user&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | purge&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | json&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityDate&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityWeekly&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetPinValidityDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Sets the daily time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartDate&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;StopDate&amp;lt;/tt&amp;gt; are strings representing the dates, formatted like this: &amp;lt;tt&amp;gt;YYYY-MM-DD HH:MM:SS&amp;lt;/tt&amp;gt; (SQL DATETIME)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityDate&amp;amp;UserCode=1&amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityDate&amp;amp;amp;UserCode=1&amp;amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPinValidityWeekly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Sets the weekly time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DayOfWeek&amp;lt;/tt&amp;gt; contains the days of week numbers when the PIN code is restricted. Monday is '&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;' and Sunday is '&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;'.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;tt&amp;gt;1367&amp;lt;/tt&amp;gt; means Monday, Wednesday, Saturday and Sunday.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartHour&amp;lt;/tt&amp;gt; is the hour the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartMinute&amp;lt;/tt&amp;gt; is the minute the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopHour&amp;lt;/tt&amp;gt; is the hour the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopMinute&amp;lt;/tt&amp;gt; is the minute the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityWeekly&amp;amp;UserCode=1&amp;amp;DayOfWeek=1367&amp;amp;StartHour=15&amp;amp;StartMinute=31&amp;amp;StopHour=16&amp;amp;StopMinute=42&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityWeekly&amp;amp;amp;UserCode=1&amp;amp;amp;DayOfWeek=1367&amp;amp;amp;StartHour=15&amp;amp;amp;StartMinute=31&amp;amp;amp;StopHour=16&amp;amp;amp;StopMinute=42&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DayOfWeek&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ClearPinValidity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Clears the given restriction slot.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;slotID&amp;lt;/tt&amp;gt; is the restriction slot number. The starting slot number is 1.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | slotID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ClearPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Removes the PIN code from slot &amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== HVAC_UserOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_UserOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_UserOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired operating mode of the HVAC. Currently MiOS supports only:&lt;br /&gt;
*Off&lt;br /&gt;
*HeatOn&lt;br /&gt;
*CoolOn&lt;br /&gt;
*AutoChangeOver&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual operating mode of the HVAC.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired energy mode. Can be &amp;lt;tt&amp;gt;Normal&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;EnergySavingsMode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual energy mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, and if 0, the thermostat doesn't support auto mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired HVAC operating mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetEnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired energy mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_OperatingState1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HVAC_OperatingState1&lt;br /&gt;
*'''File''': S_HVAC_OperatingState1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents what the HVAC is actually doing right now. The most common actions are:&lt;br /&gt;
*Idle&lt;br /&gt;
*Heating&lt;br /&gt;
*Cooling&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_FanOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_FanOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_FanOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The fan operation mode. Can be:&lt;br /&gt;
*Auto&lt;br /&gt;
*ContinuousOn&lt;br /&gt;
*PeriodicOn&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FanStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current fan state; can be ''On'' or ''Off''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the fan operating mode. Changes the Mode variable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TemperatureSetpoint1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSetpoint1&lt;br /&gt;
*'''File''': S_TemperatureSetpoint1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetpointTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllSetpoints&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma separated list containing the current setpoints for the following thermostat modes: heat, cool, auto.&lt;br /&gt;
Format: &amp;lt;code&amp;gt;HEAT,COOL,AUTO&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;AllSetpoints = 72,74,73&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*72 = heating setpoint&lt;br /&gt;
*74 = cooling setpoint&lt;br /&gt;
*73 = auto mode setpoint&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, the thermostat doesn't support auto setpoint, so set heat+cool this many degrees +/-&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReportMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | char&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;quot;M&amp;quot; = The report correspond to the current mode of operation and should update the setpoint in the received mode (default),&lt;br /&gt;
&amp;quot;S&amp;quot; = The report correspond to the current operating state and should update the setpoint in the current mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Range&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reject setpoint change commands whose setpoint is outside the specified range.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where each range has this format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,C&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;/F&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,F&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The range limits are inclusive, meaning the new setpoint must be &amp;gt;= X&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;lt;= X&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;14,34/58,92;16,44/60,112;-1,32/30,90&amp;lt;/code&amp;gt;&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt; = 14,34/58,92: this means that the '''auto''' setpoint must be between 14 and 34 if it's in Celsius, and between 58 and 92 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt; = 16,44/60,112: this means that the '''cool''' setpoint must be between 16 and 44 if it's in Celsius, and between 60 and 112 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt; = -1,32/30,90: this means that the '''heat''' setpoint must be between -1 and 32 if it's in Celsius, and between 30 and 90 if it's in Fahrenheit.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target setpoint.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TemperatureSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSensor1&lt;br /&gt;
*'''File''': S_TemperatureSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentTemperature&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GenericSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:GenericSensor1&lt;br /&gt;
*'''File''': S_GenericSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LightSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:LightSensor1&lt;br /&gt;
*'''File''': S_LightSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HumiditySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HumiditySensor1&lt;br /&gt;
*'''File''': S_HumiditySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SecuritySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SecuritySensor1&lt;br /&gt;
*'''File''': S_SecuritySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Tripped&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used by MiOS as a way to disable sending notifications when a sensor is tripped/untripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the UNIX time when the sensor last reported that it was tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreTripTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used to filter trip events, the value specify the time in seconds of the filter, internally it will record the last event and after the time has elapsed it will set the variable Tripped to the last known event recorded.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoUntrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used for those devices that doesn't send the Untrip command and requires to automatically untrip after certain time. The value correspond to the time in seconds that the controller will set the Tripped variable to 0 after a Trip event. To disable this feature, set the variable to 0 or remove it from the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetArmed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newArmedValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Arms or disarms the sensor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EnergyMetering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:EnergyMetering1&lt;br /&gt;
*'''File''': S_EnergyMetering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Watts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If the device can report its wattage, this is the value reported by the device, otherwise this is the value supplied by the user in &amp;lt;tt&amp;gt;UserSupliedWattage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Pulse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserSuppliedWattage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | See &amp;lt;tt&amp;gt;Watts&amp;lt;/tt&amp;gt;.&lt;br /&gt;
'''Note:''' For thermostats, &amp;lt;tt&amp;gt;UserSuppliedWattage&amp;lt;/tt&amp;gt; consists of 3 numbers separated by commas. The default is 1500,1500,300. The first number is how many watts are used when the thermostat is in 'heat' mode; the second is how many watts are used when the thermostat is in 'cool' mode; and the third number is for the 'fan only' mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | KWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | float&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If the device can report its energy consumption, this is the value reported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | KWHReading&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The time, in Unix timestamp format, of the last energy consumption report.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Log&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of values:&lt;br /&gt;
&amp;lt;code&amp;gt;CurrentConsumption,Average,Peak,LastReading,Seconds&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*''LastReading'' is the Unix time.&lt;br /&gt;
*''Seconds'' is the period of time the ''Average'' value was computed for.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ResetKWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== IrTransmitter1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrTransmitter1&lt;br /&gt;
*'''File''': S_IrTransmitter1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SendProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sends the given IR code.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SerialPort1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-org:serviceId:SerialPort1&lt;br /&gt;
*'''File''': S_SerialPort1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | path&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the serial port. On Vera Lite it's &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | baud&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The baud rate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | stopbits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of stop bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | databits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of data bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | parity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Can be &amp;lt;tt&amp;gt;odd&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;even&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SceneController1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneController1&lt;br /&gt;
*'''File''': S_SceneController1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneActivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the activated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneDeactivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the deactivated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scenes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The scene ID (as reported by the scene controller) of the last activated or deactivated scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the scene was last activated or deactivated.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManageLeds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, automatically turn on/off the scene indicator lights.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumButtons&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;NumberOfButtons[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,etc.]]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*'''ButtonNumber''' must be from 1 to ''NumberOfButtons''.&lt;br /&gt;
*'''AssociationNumber''' is the association group.&lt;br /&gt;
*'''SceneNumber''' is an event ID, and it's sent instead of the one we program.&lt;br /&gt;
*'''ButtonName''' is the user friendly name of the button.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2,1-1-1=Tap Button,2-2-2=Hold Button&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ButtonMapping&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;OldButtonNumber-Attribute-NewButtonNumber[,OldButtonNumber-Attribute-NewButtonNumber[,etc.]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where '''Attribute''' has the following meaning:&lt;br /&gt;
&lt;br /&gt;
*0 = Key pressed&lt;br /&gt;
*1 = Key is released, sent only as a termination of a Key Held Down sequence&lt;br /&gt;
*2 = Key held down&lt;br /&gt;
*3 = Key double tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
*4 = Key triple tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; These attributes were added in COMMAND_CLASS_CENTRAL_SCENE V2, so it's not available on all the scene controllers.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1-0-1,1-3-2,2-0-3,2-3-4,3-0-5,3-3-6,4-0-7,4-3-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneShortcuts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FiresOffEvents&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ActivationMethod&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave stuff.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SceneControllerLED1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneControllerLED1&lt;br /&gt;
*'''File''': S_SceneControllerLED1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The lights' state. The lower 4 bits of &amp;lt;tt&amp;gt;LightSettings&amp;lt;/tt&amp;gt; are the 4 green LEDs, and the upper 4 are the 4 red LEDs. So, 10001 is an orange light, 110010 is an orange light and a red, etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SetLight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Change a light's state.&lt;br /&gt;
*&amp;lt;tt&amp;gt;newValue&amp;lt;/tt&amp;gt; is the new light state. The valid values are:&lt;br /&gt;
**0 = off&lt;br /&gt;
**1 = green&lt;br /&gt;
**2 = red&lt;br /&gt;
**3 = orange&lt;br /&gt;
*&amp;lt;tt&amp;gt;Indicator&amp;lt;/tt&amp;gt; is the button number.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicator&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrDevice1&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrDevice1&lt;br /&gt;
*'''File''': S_IrDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codesets&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | SendCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Button&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Repeat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Color1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Color1&lt;br /&gt;
*'''File''': S_Color1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Variable&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| CurrentColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| TargetColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ColorMode&lt;br /&gt;
| string&lt;br /&gt;
| Currently used only for Revogi.&lt;br /&gt;
Can have only 2 values:&lt;br /&gt;
*0 = Colorful mode&lt;br /&gt;
*1 = Color temperature mode&lt;br /&gt;
|-&lt;br /&gt;
| ColorChannelPriorities&lt;br /&gt;
| string&lt;br /&gt;
| Specify the color channel priorities like this:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;gt;1&amp;gt;2,3,4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That value can be interpretted like this: channel 0 has priority over channel 1, which has priority over channels 2, 3 and 4.&lt;br /&gt;
|-&lt;br /&gt;
| SupportedColors&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/AlternateEventServer</id>
		<title>AlternateEventServer</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/AlternateEventServer"/>
				<updated>2018-02-12T15:32:45Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
Vera calls MiOS's event servers to report events, like sensor tripped, triggers, etc. MiOS's event servers send out text messages and emails to report these events. &lt;br /&gt;
&lt;br /&gt;
Some very advanced users have asked to setup their own event server that Vera will call to report events. If you add your own, alternate event server, Vera will still send events to MiOS's event server unchanged, however Vera will also post the same event to the alternate server of your choice. &lt;br /&gt;
&lt;br /&gt;
== UI5 ==&lt;br /&gt;
* On '''UI5''' Vera will send the event as a standard HTTPS (secure) GET to &amp;lt;tt&amp;gt;yourserver/alert&amp;lt;/tt&amp;gt; with the arguments passed on the URL, like this (assuming your server is &amp;lt;tt&amp;gt;myserver.me.com&amp;lt;/tt&amp;gt;): &lt;br /&gt;
&lt;br /&gt;
  https://myserver.me.com/alert?&lt;br /&gt;
 PK_AccessPoint=[serial number of Vera; in Lua you can get it with [http://wiki.micasaverde.com/index.php/Luup_Lua_extensions#variable:_pk_accesspoint luup.pk_accesspoint]]&lt;br /&gt;
 &amp;amp;amp;HW_Key=[hardware key of Vera; in Lua you can get it with [http://wiki.micasaverde.com/index.php/Luup_Lua_extensions#variable:_hw_key luup.hw_key]]&lt;br /&gt;
 &amp;amp;amp;DeviceID=[device id that is associated with the alert]&lt;br /&gt;
 &amp;amp;amp;LocalDate=[the time the alert happened as human readable text]&lt;br /&gt;
 &amp;amp;amp;LocalTimestamp=[the time the alert happened as a unix timestamp in UTC]&lt;br /&gt;
 &amp;amp;amp;AlertType=[one of the alert types below]]&lt;br /&gt;
 &amp;amp;amp;SourceType=[one of the source types below]&lt;br /&gt;
 &amp;amp;amp;Argument=[an optional argument depending on the alert type]&lt;br /&gt;
 &amp;amp;amp;Format=[a file format, not normally used]&lt;br /&gt;
 &amp;amp;amp;Code=[a code for the alert, usually the variable that changed]&lt;br /&gt;
 &amp;amp;amp;Value=[the value corresponding to the code above]&lt;br /&gt;
 &amp;amp;amp;Description=[a human readable description of the event, or comments regarding it]&lt;br /&gt;
 &amp;amp;amp;Users=[a comma separated list of user id's that should be notified of the event]&lt;br /&gt;
&lt;br /&gt;
The page on your event server must respond with a plain text response which should look like this:&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Length: n&lt;br /&gt;
 &lt;br /&gt;
 PK_Alert:x&lt;br /&gt;
&lt;br /&gt;
- '''x''' is some number to identify the alert recorded on the server. It can be any number, and just ''PK_Alert:0'' if you don't assign a number to the alert.  Whatever it is will be put in Vera's logs along with the alert for cross reference.&amp;lt;br /&amp;gt;&lt;br /&gt;
- '''n''' is the content length, which is 9 plus the length of '''x''' (e.g. for ''PK_Alert:0'' the content length is ''10''). The ''Content-Length'' parameter is optional.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== UI7 ==&lt;br /&gt;
* On '''UI7''' Vera will send the event as a standard HTTPS (secure) POST to &amp;lt;tt&amp;gt;yourserver/event/event/event&amp;lt;/tt&amp;gt;, passing the data as a json, like this (assuming your server is &amp;lt;tt&amp;gt;myserver.me.com&amp;lt;/tt&amp;gt;): &lt;br /&gt;
&lt;br /&gt;
 https://myserver.me.com/event/event/event&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;PK_Device&amp;quot;:,      // Serial number of Vera; in Lua you can get it with [http://wiki.micasaverde.com/index.php/Luup_Lua_extensions#variable:_pk_accesspoint luup.pk_accesspoint]&lt;br /&gt;
    &amp;quot;PK_Account&amp;quot;:,     // The account ID which the Vera unit is assigned to&lt;br /&gt;
    &amp;quot;LocalDate&amp;quot;:&amp;quot;&amp;quot;,    // The time when the alert was generated, as human readable text&lt;br /&gt;
    &amp;quot;Severity&amp;quot;:,&lt;br /&gt;
    &amp;quot;EventType&amp;quot;:,      // One of the alert types below&lt;br /&gt;
    &amp;quot;SourceType&amp;quot;:,     // One of the source types below&lt;br /&gt;
    &amp;quot;Argument&amp;quot;:,       // An optional argument depending on the alert type&lt;br /&gt;
    &amp;quot;Code&amp;quot;:&amp;quot;&amp;quot;,         // A code for the alert, usually the variable that changed&lt;br /&gt;
    &amp;quot;NewValue&amp;quot;:&amp;quot;&amp;quot;,     // The value corresponding to the code above&lt;br /&gt;
    &amp;quot;Description&amp;quot;:&amp;quot;&amp;quot;,  // A human readable description of the event, or comments regarding it&lt;br /&gt;
    &amp;quot;Users&amp;quot;:&amp;quot;&amp;quot;,        // A comma separated list of user IDs that should be notified of the event&lt;br /&gt;
    &amp;quot;Icon&amp;quot;:&amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;LocalTimestamp&amp;quot;:, // The time when the alert was generated, as an Unix timestamp in UTC&lt;br /&gt;
    &amp;quot;DeviceID&amp;quot;:,       // The ID of the device that generated the alert *&lt;br /&gt;
    &amp;quot;DeviceName&amp;quot;:&amp;quot;&amp;quot;,   // The name of the device that generated the alert *&lt;br /&gt;
    &amp;quot;DeviceType&amp;quot;:&amp;quot;&amp;quot;,   // The type of the device that generated the alert *&lt;br /&gt;
    &amp;quot;Room&amp;quot;:&amp;quot;&amp;quot;,         // The room where the device that generated the alert is *&lt;br /&gt;
    &amp;quot;Category&amp;quot;:,       // The category of the device that generated the alert *&lt;br /&gt;
    &amp;quot;SubCategory&amp;quot;:,    // The subcategory of the device that generated the alert *&lt;br /&gt;
    &amp;quot;Expiration&amp;quot;:&amp;quot;&amp;quot;    // When the alert expires&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
''* This info appears in the alert only if it was generated by a device.''&lt;br /&gt;
&lt;br /&gt;
The page on your event server must respond with a plain text response which should look like this:&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;PK_Event&amp;quot;:1234,&lt;br /&gt;
    &amp;quot;Key&amp;quot;:&amp;quot;12345678&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
{{Warning|'''PK_Event''' must be a number, i.e. not surrounded by double quotes.}}&lt;br /&gt;
{{Warning|There must be no characters between &amp;lt;code&amp;gt;&amp;quot;PK_Event&amp;quot;:&amp;lt;/code&amp;gt; and the number.}}&lt;br /&gt;
{{Warning|&amp;quot;PK_Event&amp;quot; and &amp;quot;Key&amp;quot; are '''case sensitive'''.}}&lt;br /&gt;
{{Info|&amp;quot;PK_Event&amp;quot; can be any valid integer (e.g. 471993). &amp;quot;Key&amp;quot; can be any string, however, it's preferable to be a string representing a number (e.g. &amp;quot;85729059&amp;quot;).}}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
To use this alternate event logging set the top level user_data tag &amp;quot;AltEventServer&amp;quot; to the domain of your server. If your server is &amp;lt;tt&amp;gt;myserver.me.com&amp;lt;/tt&amp;gt;, do this by changing the 'ip' to be the IP of Vera, and opening this URL: &lt;br /&gt;
&lt;br /&gt;
 http://ip:3480/data_request?id=variableset&amp;amp;amp;Variable=AltEventServer&amp;amp;amp;Value=myserver.me.com &lt;br /&gt;
&lt;br /&gt;
Then click ''Reload'' in Vera's UI to reload the engine with the changes. You can watch Vera send the data by logging into Vera's console as explained in [[Logon Vera SSH]] and then typing: &lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/cmh/LuaUPnP.log | grep 'RAServerSync::SendAlert' &lt;br /&gt;
&lt;br /&gt;
To stop logging to your own server, call the &amp;lt;tt&amp;gt;variableset&amp;lt;/tt&amp;gt; again but leave the Value empty. &lt;br /&gt;
&lt;br /&gt;
==== Alert Types ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|style=&amp;quot;text-align:right; padding:0px 10px 0px 20px;&amp;quot;| 1&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_IMAGE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 2&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_VIDEO&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 3&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_TRIGGER&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 4&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_VARIABLE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 5&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_LOGON&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 6&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_GATEWAY_CONNECTED&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 7&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_SYS_ERROR&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 8&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_VALIDATE_EMAIL&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 9&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_VALIDATE_SMS&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 10&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_SYS_MESSAGE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 11&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_TEST_SMS_EMAIL&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 12&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_BURGLARY&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 13&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_FIRE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 14&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_INTERNET_DOWN&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 15&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_GATEWAY_OFFLINE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 16&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_DEVICE_OFFLINE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 17&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_INSTALLER_ACCESS&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 18&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_INSTALLER_ACCESS_ACTIVE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 19&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_WELCOME_EMAIL&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 20&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_INSTALLER_WELCOME_EMAIL&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 21&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_ACCOUNT_INVITATION_EMAIL&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 25&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_NETWORK_INTERFACE_CHANGE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Source Types ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|style=&amp;quot;text-align:right; padding:0px 10px 0px 20px;&amp;quot;| 1&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| SOURCE_USER&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 2&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| SOURCE_TIMER&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 3&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| SOURCE_TRIGGER&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 4&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| SOURCE_VARIABLE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== File Formats ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|style=&amp;quot;text-align:right; padding:0px 10px 0px 20px;&amp;quot;| 1&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| FORMAT_JPEG&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 2&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| FORMAT_MJPEG&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 3&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| FORMAT_MP4&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/AlternateEventServer</id>
		<title>AlternateEventServer</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/AlternateEventServer"/>
				<updated>2018-01-29T12:30:36Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* UI7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Services]]&lt;br /&gt;
Vera calls MiOS's event servers to report events, like sensor tripped, triggers, etc. MiOS's event servers send out text messages and emails to report these events. &lt;br /&gt;
&lt;br /&gt;
Some very advanced users have asked to setup their own event server that Vera will call to report events. If you add your own, alternate event server, Vera will still send events to MiOS's event server unchanged, however Vera will also post the same event to the alternate server of your choice. &lt;br /&gt;
&lt;br /&gt;
== UI5 ==&lt;br /&gt;
* On '''UI5''' Vera will send the event as a standard HTTPS (secure) GET to &amp;lt;tt&amp;gt;yourserver/alert&amp;lt;/tt&amp;gt; with the arguments passed on the URL, like this (assuming your server is &amp;lt;tt&amp;gt;myserver.me.com&amp;lt;/tt&amp;gt;): &lt;br /&gt;
&lt;br /&gt;
  https://myserver.me.com/alert?&lt;br /&gt;
 PK_AccessPoint=[serial number of Vera; in Lua you can get it with [http://wiki.micasaverde.com/index.php/Luup_Lua_extensions#variable:_pk_accesspoint luup.pk_accesspoint]]&lt;br /&gt;
 &amp;amp;amp;HW_Key=[hardware key of Vera; in Lua you can get it with [http://wiki.micasaverde.com/index.php/Luup_Lua_extensions#variable:_hw_key luup.hw_key]]&lt;br /&gt;
 &amp;amp;amp;DeviceID=[device id that is associated with the alert]&lt;br /&gt;
 &amp;amp;amp;LocalDate=[the time the alert happened as human readable text]&lt;br /&gt;
 &amp;amp;amp;LocalTimestamp=[the time the alert happened as a unix timestamp in UTC]&lt;br /&gt;
 &amp;amp;amp;AlertType=[one of the alert types below]]&lt;br /&gt;
 &amp;amp;amp;SourceType=[one of the source types below]&lt;br /&gt;
 &amp;amp;amp;Argument=[an optional argument depending on the alert type]&lt;br /&gt;
 &amp;amp;amp;Format=[a file format, not normally used]&lt;br /&gt;
 &amp;amp;amp;Code=[a code for the alert, usually the variable that changed]&lt;br /&gt;
 &amp;amp;amp;Value=[the value corresponding to the code above]&lt;br /&gt;
 &amp;amp;amp;Description=[a human readable description of the event, or comments regarding it]&lt;br /&gt;
 &amp;amp;amp;Users=[a comma separated list of user id's that should be notified of the event]&lt;br /&gt;
&lt;br /&gt;
The page on your event server must respond with a plain text response which should look like this:&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Length: n&lt;br /&gt;
 &lt;br /&gt;
 PK_Alert:x&lt;br /&gt;
&lt;br /&gt;
- '''x''' is some number to identify the alert recorded on the server. It can be any number, and just ''PK_Alert:0'' if you don't assign a number to the alert.  Whatever it is will be put in Vera's logs along with the alert for cross reference.&amp;lt;br /&amp;gt;&lt;br /&gt;
- '''n''' is the content length, which is 9 plus the length of '''x''' (e.g. for ''PK_Alert:0'' the content length is ''10''). The ''Content-Length'' parameter is optional.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== UI7 ==&lt;br /&gt;
* On '''UI7''' Vera will send the event as a standard HTTPS (secure) POST to &amp;lt;tt&amp;gt;yourserver/event/event/event&amp;lt;/tt&amp;gt;, passing the data as a json, like this (assuming your server is &amp;lt;tt&amp;gt;myserver.me.com&amp;lt;/tt&amp;gt;): &lt;br /&gt;
&lt;br /&gt;
 https://myserver.me.com/event/event/event&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;PK_Device&amp;quot;:,      // Serial number of Vera; in Lua you can get it with [http://wiki.micasaverde.com/index.php/Luup_Lua_extensions#variable:_pk_accesspoint luup.pk_accesspoint]&lt;br /&gt;
    &amp;quot;PK_Account&amp;quot;:,     // The account ID which the Vera unit is assigned to&lt;br /&gt;
    &amp;quot;LocalDate&amp;quot;:&amp;quot;&amp;quot;,    // The time when the alert was generated, as human readable text&lt;br /&gt;
    &amp;quot;Severity&amp;quot;:,&lt;br /&gt;
    &amp;quot;EventType&amp;quot;:,      // One of the alert types below&lt;br /&gt;
    &amp;quot;SourceType&amp;quot;:,     // One of the source types below&lt;br /&gt;
    &amp;quot;Argument&amp;quot;:,       // An optional argument depending on the alert type&lt;br /&gt;
    &amp;quot;Code&amp;quot;:&amp;quot;&amp;quot;,         // A code for the alert, usually the variable that changed&lt;br /&gt;
    &amp;quot;NewValue&amp;quot;:&amp;quot;&amp;quot;,     // The value corresponding to the code above&lt;br /&gt;
    &amp;quot;Description&amp;quot;:&amp;quot;&amp;quot;,  // A human readable description of the event, or comments regarding it&lt;br /&gt;
    &amp;quot;Users&amp;quot;:&amp;quot;&amp;quot;,        // A comma separated list of user IDs that should be notified of the event&lt;br /&gt;
    &amp;quot;Icon&amp;quot;:&amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;LocalTimestamp&amp;quot;:, // The time when the alert was generated, as an Unix timestamp in UTC&lt;br /&gt;
    &amp;quot;DeviceID&amp;quot;:,       // The ID of the device that generated the alert *&lt;br /&gt;
    &amp;quot;DeviceName&amp;quot;:&amp;quot;&amp;quot;,   // The name of the device that generated the alert *&lt;br /&gt;
    &amp;quot;DeviceType&amp;quot;:&amp;quot;&amp;quot;,   // The type of the device that generated the alert *&lt;br /&gt;
    &amp;quot;Room&amp;quot;:&amp;quot;&amp;quot;,         // The room where the device that generated the alert is *&lt;br /&gt;
    &amp;quot;Category&amp;quot;:,       // The category of the device that generated the alert *&lt;br /&gt;
    &amp;quot;SubCategory&amp;quot;:,    // The subcategory of the device that generated the alert *&lt;br /&gt;
    &amp;quot;Expiration&amp;quot;:&amp;quot;&amp;quot;    // When the alert expires&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
''* This info appears in the alert only if it was generated by a device.''&lt;br /&gt;
&lt;br /&gt;
The page on your event server must respond with a plain text response which should look like this:&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;PK_Event&amp;quot;:1234,&lt;br /&gt;
    &amp;quot;Key&amp;quot;:&amp;quot;1234&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
{{Warning|'''PK_Event''' must be a number, i.e. not surrounded by double quotes.}}&lt;br /&gt;
{{Warning|There must be no characters between &amp;lt;code&amp;gt;&amp;quot;PK_Event&amp;quot;:&amp;lt;/code&amp;gt; and the number.}}&lt;br /&gt;
{{Warning|&amp;quot;PK_Event&amp;quot; and &amp;quot;Key&amp;quot; are '''case sensitive'''.}}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
To use this alternate event logging set the top level user_data tag &amp;quot;AltEventServer&amp;quot; to the domain of your server. If your server is &amp;lt;tt&amp;gt;myserver.me.com&amp;lt;/tt&amp;gt;, do this by changing the 'ip' to be the IP of Vera, and opening this URL: &lt;br /&gt;
&lt;br /&gt;
 http://ip:3480/data_request?id=variableset&amp;amp;amp;Variable=AltEventServer&amp;amp;amp;Value=myserver.me.com &lt;br /&gt;
&lt;br /&gt;
Then click ''Reload'' in Vera's UI to reload the engine with the changes. You can watch Vera send the data by logging into Vera's console as explained in [[Logon Vera SSH]] and then typing: &lt;br /&gt;
&lt;br /&gt;
 tail -f /var/log/cmh/LuaUPnP.log | grep 'RAServerSync::SendAlert' &lt;br /&gt;
&lt;br /&gt;
To stop logging to your own server, call the &amp;lt;tt&amp;gt;variableset&amp;lt;/tt&amp;gt; again but leave the Value empty. &lt;br /&gt;
&lt;br /&gt;
==== Alert Types ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|style=&amp;quot;text-align:right; padding:0px 10px 0px 20px;&amp;quot;| 1&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_IMAGE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 2&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_VIDEO&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 3&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_TRIGGER&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 4&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_VARIABLE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 5&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_LOGON&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 6&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_GATEWAY_CONNECTED&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 7&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_SYS_ERROR&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 8&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_VALIDATE_EMAIL&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 9&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_VALIDATE_SMS&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 10&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_SYS_MESSAGE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 11&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_TEST_SMS_EMAIL&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 12&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_BURGLARY&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 13&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_FIRE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 14&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_INTERNET_DOWN&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 15&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_GATEWAY_OFFLINE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 16&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_DEVICE_OFFLINE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 17&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_INSTALLER_ACCESS&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 18&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_INSTALLER_ACCESS_ACTIVE&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 19&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_WELCOME_EMAIL&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 20&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_INSTALLER_WELCOME_EMAIL&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 21&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_ACCOUNT_INVITATION_EMAIL&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 25&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| ALERT_NETWORK_INTERFACE_CHANGE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Source Types ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|style=&amp;quot;text-align:right; padding:0px 10px 0px 20px;&amp;quot;| 1&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| SOURCE_USER&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 2&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| SOURCE_TIMER&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 3&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| SOURCE_TRIGGER&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 4&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| SOURCE_VARIABLE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== File Formats ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|style=&amp;quot;text-align:right; padding:0px 10px 0px 20px;&amp;quot;| 1&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| FORMAT_JPEG&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 2&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| FORMAT_MJPEG&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:right; padding-right:10px;&amp;quot;| 3&lt;br /&gt;
|style=&amp;quot;padding-left:5px;&amp;quot;| FORMAT_MP4&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions</id>
		<title>Luup UPnP Variables and Actions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions"/>
				<updated>2018-01-26T12:15:02Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* HaDevice1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
This is a list of all the UPnP actions and variables used by MiOS.&lt;br /&gt;
&lt;br /&gt;
Some actions and variables have self-explanatory names, so there's a dash ('-') instead of the description.&lt;br /&gt;
&lt;br /&gt;
== HomeAutomationGateway1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HomeAutomationGateway1&lt;br /&gt;
*'''File''': S_HomeAutomationGateway1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataVersion&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A number that increases each time the data changes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Unique Device Name of the UPnP device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload the LuaUPnP engine.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ModifyUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | inUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Make changes to the UserData.&lt;br /&gt;
*&amp;lt;tt&amp;gt;inUserData&amp;lt;/tt&amp;gt; is the new UserData object which will be added to the UserData or will replace an existent UserData object.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DataFormat&amp;lt;/tt&amp;gt; must be ''json''.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is ''1'' the LuaUPnP engine will reload after the UserData is modified.&lt;br /&gt;
&lt;br /&gt;
For more information read the [[ModifyUserData]] page.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataFormat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Create or change the value of a variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; can be an UDN or a number.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Service&amp;lt;/tt&amp;gt; is the service ID of the variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Variable&amp;lt;/tt&amp;gt; is the variable name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Value&amp;lt;/tt&amp;gt; is the new variable value.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Service&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Variable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | RunScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Run the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SceneOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Turn off all the devices from DEVICE_CATEGORY_DIMMABLE_LIGHT and DEVICE_CATEGORY_SWITCH from the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | RunLua&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Run the given Lua code. If &amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; is specified, the code is run using that device's interface.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Code&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | CreateDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | deviceType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | Create a device using the given parameters.&lt;br /&gt;
*&amp;lt;tt&amp;gt;deviceType&amp;lt;/tt&amp;gt; is the UPnP device type.&lt;br /&gt;
*&amp;lt;tt&amp;gt;internalID&amp;lt;/tt&amp;gt; is the specific ID (also known as ''altid'') of the device; for example, for Z-Wave devices this is the Node ID, and for Insteon device it is the Insteon ID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Description&amp;lt;/tt&amp;gt; is the device name, which is shown to the user on the dashboard.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpDevFilename&amp;lt;/tt&amp;gt; is the UPnP device description file name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpImplFilename&amp;lt;/tt&amp;gt; is the implementation file to use.&lt;br /&gt;
*If the device is IP based, &amp;lt;tt&amp;gt;IpAddress&amp;lt;/tt&amp;gt; is the IP address and port of the device.&lt;br /&gt;
*If this should be the child of another device, &amp;lt;tt&amp;gt;DeviceNumParent&amp;lt;/tt&amp;gt; is the device number of the parent device.&lt;br /&gt;
*&amp;lt;tt&amp;gt;RoomNum&amp;lt;/tt&amp;gt; is the number of the room the device will be in.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; tells the device which plugin to use. The plugin will be installed automatically if it's not already installed.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; is a string containing the variables you want set when the device is created. You can specify multiple variables by separating them with a line feed ('\n'), and use ',' and '=' to separate service, variable and value, like this: &amp;lt;tt&amp;gt;service,variable=value\nservice,variable=value\n&amp;lt;/tt&amp;gt;...&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is '''1''', the Luup engine will be restarted after the device is created.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | internalID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpDevFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpImplFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Username&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Password&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNumParent&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | DeleteDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Delete the device given either through its number, or through its UDN.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | CreatePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Create a plugin with the &amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; number and &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; version. &amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; are the variables that will be set when the device is created. For more information look at the description of the '''CreateDevice''' action above.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Version&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DeletePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Uninstall the given plugin.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | CreatePluginDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Creates a device for plugin #&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ImportUpnpDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | LogIpRequest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetHouseMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Changes the house mode.&lt;br /&gt;
&amp;lt;tt&amp;gt;Mode&amp;lt;/tt&amp;gt; can be:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = Home&lt;br /&gt;
*&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = Away&lt;br /&gt;
*&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = Night&lt;br /&gt;
*&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = Vacation&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HaDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HaDevice1&lt;br /&gt;
*'''File''': S_HaDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CommFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains the communication status with the device:&lt;br /&gt;
* 0 : The communication with the device is OK.&lt;br /&gt;
* 1 : The communication with the device is not OK (e.g. lost connection).&lt;br /&gt;
* 2 : The device is reachable, but there's an authentication error (e.g. invalid credentials).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The configuration state of the device:&lt;br /&gt;
*-3 = Configuration failed&lt;br /&gt;
*-2 = Configuration in progress&lt;br /&gt;
*-1 = Device waiting to be configured&lt;br /&gt;
*0 = Device not configured&lt;br /&gt;
*1 = Device successfully configured&lt;br /&gt;
*2 = Device partially configured&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoConfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically check the routing info for this every 12 hours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The battery level reported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the &amp;lt;tt&amp;gt;BatteryLevel&amp;lt;/tt&amp;gt; was reported.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeCheck&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Only for devices that are capable of implementing time, this is when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeOffset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | For &amp;lt;tt&amp;gt;LastTimeCheck&amp;lt;/tt&amp;gt;, this is the timezone offset from UTC when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device information was last updated. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FirstConfigured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device was first configured. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreRoom&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used only by the MiOS scene controller. Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Commands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of &amp;lt;tt&amp;gt;ControlCodes&amp;lt;/tt&amp;gt; for the enabled UI controls. If the &amp;lt;tt&amp;gt;ControlCode&amp;lt;/tt&amp;gt; of an UI control (e.g. button) is not in this list, the button will be disabled (greyed out). If this variable is missing, all controls will be enabled. If this variable is empty, all controls will be disabled.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IODevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The device number to connect to for IO. (this is on the master device)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IOPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The port to receive connections on from &amp;lt;tt&amp;gt;IODevice&amp;lt;/tt&amp;gt;. (this is on the serial port)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReverseOnOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, the commands for some devices are reversed (e.g. the On command will turn the device Off, and vice versa). Not all devices support this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_Alarm&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Currently used only by the water leak sensor, contains the alarm code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeSetting&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains the state of the device for each house mode.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;&amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;...&lt;br /&gt;
&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is empty, the sensor is disarmed/bypassed.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is &amp;quot;A&amp;quot;, the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1:;2:A;3:A;4:A&lt;br /&gt;
&lt;br /&gt;
*In &amp;lt;tt&amp;gt;Home&amp;lt;/tt&amp;gt;(1) mode the sensor is disarmed;&lt;br /&gt;
*in &amp;lt;tt&amp;gt;Away&amp;lt;/tt&amp;gt;(2), &amp;lt;tt&amp;gt;Night&amp;lt;/tt&amp;gt;(3) and &amp;lt;tt&amp;gt;Vacation&amp;lt;/tt&amp;gt;(4) modes the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Children&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of KitDevice numbers.&lt;br /&gt;
LuaUPnP will create a child device for every item in the list, with the specified KitDevice properties.&lt;br /&gt;
&lt;br /&gt;
Can be used to add children to devices which don't have MultiChannel support.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the polls are doing, where 5.0 means that the last 50 polls were successful and 0.0 means that all the last 50 polls were unsuccessful.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the wakeups are being received, where 5.0 means that the we received the last 50 wakeups when they have suppose to be sent and 0.0 means that we didn't receive any of the 50 last wakeups that the device should have sent&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''See the description of this variable in ZWaveDevice1 section, because it should belong to the service urn:micasaverde-com:serviceId:ZWaveDevice1, but it was kept in urn:micasaverde-com:serviceId:HaDevice1 to maintain backward compatibility.'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeConfiguration&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Implementation of custom preset modes for any device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;[&amp;amp;#124;&amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;upnp_action&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;service&amp;amp;gt;/&amp;amp;lt;action&amp;amp;gt;/&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;[&amp;amp;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the value is '?', it means that it's a wildcard and the ''ModeSettings'' variable should contain a comma separated list of values in order to substitute this '?' wildcard. If the value is not '?', then the value is fixed and it should be URL encoded.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 h;h code;urn:upnp-org:serviceId:SwitchPower1/SetTarget/newTargetValue=?&amp;amp;otherParameter=45&amp;amp;another=?&amp;amp;#124;s;s code;urn:upnp-org:serviceId:Dimming1/SetTargetLevel/newLevel=34&amp;amp;other=?&amp;amp;another=4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeControls&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used to tell the UI what controls to show in the House modes configuration page for the actions in the ''CustomModeConfiguration'' variable.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;;&amp;lt;control info for arg #2&amp;gt;;..;&amp;lt;control info for arg #N&amp;gt;[&amp;amp;#124;&amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | StressTest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stress test the Z-Wave device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove the device from the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ToggleState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Toggle the state of the device (e.g. if the device it's Off, turns it On). The device must have a binary state (On/Off, Locked/Unlocked, etc.).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ZWaveDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveDevice1&lt;br /&gt;
*'''File''': S_ZWaveDevice1.xml ''(nonexistent)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the polling frequency for a node (i.e. the minimum number of seconds between two poll commands to the same node). If this variable doesn't exist or is blank, the default polling frequency set in the &amp;lt;tt&amp;gt;ZWaveNetwork1&amp;lt;/tt&amp;gt;'s &amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt; variable will be used. If it's '''0''', polling will be disabled for this node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollCommands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of command classes/commands to poll. '&amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt;' means the device won't respond to any poll.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChEndpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Neighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbor devices' node IDs. '1' is the Vera's node ID.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NeighborsInverse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbors that see us.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Capabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The first 6 numbers in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are what is reported by the &amp;lt;tt&amp;gt;ZW_GetNodeProtocolInfo&amp;lt;/tt&amp;gt; function: Capability, Security, Reserved, Basic Device Class [, Generic Device Class, Specific Device Class]. If the &amp;lt;tt&amp;gt;Capability&amp;lt;/tt&amp;gt; is &amp;gt;= 128, then the device listens for commands, otherwise it's a battery operated device that only wakes up occasionally. After the '&amp;amp;#124;' in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are the command classes supported. More information here: [[ZWave Command Classes]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SecurityFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't talk to this node with security even if the node reports it can.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastReset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When we last reset the node association. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How often this battery operated device should wake up to report its status. The default value is 1800 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredWakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The wakeup interval already configured on the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastWakeup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device last woke up and reported its status. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastRouteUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device's routing information was last checked/updated. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Health&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A rating from 0-5. A large number means that MiOS can communicate with it easily.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HealthDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The date the rating was assigned. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings read from the device.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number,variable1_value,variable2_number,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings set by the user.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number-variable1_description,variable1_data_type,variable1_value,variable2_number-variable2_description,variable2_data_type,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This are the association settings read from the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave associations for a device are stored in this variable.&lt;br /&gt;
The associations are delimited by ';', 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 IDs, not device IDs (ie the 'altid' in the UI). If the node ID is 'z', it means the node ID of the device for which the variable is set.&lt;br /&gt;
&lt;br /&gt;
For multi-channel there is a '.' following the node ID with the endpoint ID.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1,3.4,7;2,5.1,8&lt;br /&gt;
&lt;br /&gt;
Means group #1 is associated with node #3 endpoint #4 and with node #7, which is non-multi-channel; group #2 is associated with node #5 endpoint #1, and with node #8.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of association groups supported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NonceACK&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManufacturerInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device information. Format:&lt;br /&gt;
 ManufacturerID,ProductType,ProductID&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is what's reported by the COMMAND_CLASS_VERSION command VERSION_REPORT. There are 5 values: Z-Wave Library Type, Z-Wave Protocol Version, Z-Wave Protocol Sub Version, Application Version, Application Sub Version. The &amp;lt;tt&amp;gt;Application Version&amp;lt;/tt&amp;gt; is specific to the device and not defined by Z-Wave.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetPointInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of the supported setpoint types:&lt;br /&gt;
*&amp;lt;tt&amp;gt;H1&amp;lt;/tt&amp;gt; = Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C1&amp;lt;/tt&amp;gt; = Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;F1&amp;lt;/tt&amp;gt; = Furnace&lt;br /&gt;
*&amp;lt;tt&amp;gt;D1&amp;lt;/tt&amp;gt; = Dry Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;MA&amp;lt;/tt&amp;gt; = Moist Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;AC&amp;lt;/tt&amp;gt; = Auto changeover&lt;br /&gt;
*&amp;lt;tt&amp;gt;H2&amp;lt;/tt&amp;gt; = Energy Save Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C2&amp;lt;/tt&amp;gt; = Energy Save Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;AH&amp;lt;/tt&amp;gt; = Away Heating&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of the command classes supported by this device. (hexadecimal numbers)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InitialName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The name that was initially set when the node was first added.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified name when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;VariablesSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredAssoc&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;AssociationSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Documentation&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL of the documentation used on the ''Device Options'' page.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The meter type:&lt;br /&gt;
*1 = electric&lt;br /&gt;
*2 = gas&lt;br /&gt;
*3 = water&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A bit map of the supported meter scales.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | List of the supported alarm types.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollOk, PollTxFail, PollNoReply&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | These variables are incremented each time the last poll job has the status they describe. They are reset after each network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A route specified by the end-user. This is a '''dot'''-separated list of nodes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllRoutesFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when all the manual routes have failed.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This contains a list of various routes chosen by profilings.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 route1_node1.route1_node2...-route1_score[x],route2_node1.route2_node2...-route2_score[x],...&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;score&amp;lt;/tt&amp;gt; is a measure of latency and accuracy, the lower the number, the better. '&amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;' means that the last attempt to use this route failed, so it won't be used anymore.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreDirectScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SwitchMlSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BasicSetCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining actions for BASIC_SET messages.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Value&amp;gt;=&amp;lt;Action&amp;gt;&amp;lt;Endpoint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*Value &amp;amp;nbsp;: the BASIC_SET Value; if Value is &amp;quot;XX&amp;quot;, it means any value&lt;br /&gt;
*Action &amp;amp;nbsp;: the Action to perform; the supported values are: T&amp;lt;tt&amp;gt;=Trip&amp;lt;/tt&amp;gt;, U&amp;lt;tt&amp;gt;=Untrip&amp;lt;/tt&amp;gt;, O&amp;lt;tt&amp;gt;=On&amp;lt;/tt&amp;gt;, F&amp;lt;tt&amp;gt;=Off&amp;lt;/tt&amp;gt;, D&amp;lt;tt&amp;gt;=Dim&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Endpoint &amp;amp;nbsp;: the Endpoint device ID (altid); if Endpoint=0, it means the parent node, or the current node if the device has no children&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=Ue1,FF=Te1&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Untrip endpoint &amp;quot;e1&amp;quot;; if receive 0xFF, Trip endpoint &amp;quot;e1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;XX=D02&amp;lt;/code&amp;gt; =&amp;gt; Dim endpoint 02 to whatever value received&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=T0,FF=U0&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Trip the current node; if receive 0xFF, Untrip the current node&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SupportedMRTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining which meter report types are supported by the device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;;&amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*CC Hex &amp;amp;nbsp;: the Hex value of the command class (without 0x):&lt;br /&gt;
**0x31 for COMMAND_CLASS_SENSOR_MULTILEVEL&lt;br /&gt;
**0x32 for COMMAND_CLASS_METER&lt;br /&gt;
*Supported Type &amp;amp;nbsp;: The HEX value of the type supported for the Command class without 0x&lt;br /&gt;
**Supported types for COMMAND_CLASS_SENSOR_MULTILEVEL:&lt;br /&gt;
***Temperature = 0x01&lt;br /&gt;
***General = 0x02&lt;br /&gt;
***Luminance = 0x03&lt;br /&gt;
***Power = 0x04&lt;br /&gt;
***RelativeHumidity = 0x05&lt;br /&gt;
***Velocity = 0x06&lt;br /&gt;
***Direction = 0x07&lt;br /&gt;
***AtmosphericPressure = 0x08&lt;br /&gt;
***BarometricPressure = 0x09&lt;br /&gt;
***SolarRadiation = 0x0A&lt;br /&gt;
***DewPoint = 0x0B&lt;br /&gt;
***RainRate = 0x0C&lt;br /&gt;
***TideLevel = 0x0D&lt;br /&gt;
***Weight = 0x0E&lt;br /&gt;
***Voltage = 0x0F&lt;br /&gt;
***Current = 0x10&lt;br /&gt;
***CO2level = 0x11&lt;br /&gt;
***AirFlow = 0x12&lt;br /&gt;
***TankCapacity = 0x13&lt;br /&gt;
***Distance = 0x14&lt;br /&gt;
***SeismicIntensity = 0x19&lt;br /&gt;
***UltraViolet = 0x1B&lt;br /&gt;
&lt;br /&gt;
**Supported types for COMMAND_CLASS_METER:&lt;br /&gt;
***Electric=0x01&lt;br /&gt;
***Gas=0x02&lt;br /&gt;
***Water=0x03&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;31-0F,0E,10,1B;32-01,03&amp;lt;/code&amp;gt; =&amp;gt; Device supports Voltage, Weight, Current and UltraViolet for COMMAND_CLASS_SENSOR_MULTILEVEL and Electric and Water from COMMAND_CLASS_METER&lt;br /&gt;
&lt;br /&gt;
If the variable is empty it will be treated as support anything. If the variable does not contain a command class that command class will be treated as support everything.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NoChildren&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this variable is '''1''', delete the child devices, and don't allow the creation of other child devices, to avoid creating ghost devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''(NOTE: this is its new service. ''urn:micasaverde-com:serviceId:HaDevice1'' was left unchanged to mantain backward compatibility.)'''&lt;br /&gt;
Allows setting what each Alarm Type does for devices using COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION. The format is:&lt;br /&gt;
&lt;br /&gt;
 AlarmTypes:AlarmLevels:AlarmCode:Action;AlarmTypes:AlarmLevels:AlarmCode:Action&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmTypes&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;type1,type2-type3,!type4&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmLevels&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;00,01,05-20,!FF&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;SMOKE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAMPER_ALARM&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Action&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = don't update the ''Tripped'' variable, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = update the ''Tripped'' variable, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = ignore the message (i.e. don't update the ''sl_Alarm'' variable)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 01:FF:SMOKE:1;0C:FF::1;0D:FF:TAMPER_ALARM:0&lt;br /&gt;
&lt;br /&gt;
*if Alarm Type is ''0x01'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;SMOKE&amp;quot; and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0C'' and the Alarm Level is ''0xFF'', don't update the ''sl_Alarm'' variable, and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0D'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;TAMPER_ALARM&amp;quot;, but don't trip the sensor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypesV2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows customizing the handling of the COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION &amp;gt;= v2 messages.&lt;br /&gt;
The format is a ';' separated list of tokens. Format of each token:&lt;br /&gt;
&lt;br /&gt;
 TypesV1:LevelV1:NotificationStatus:NotificationType:Event:AlarmCode:TripValue&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;TypesV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1_v1,type2_v1-type3_v1,!type4_v1, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;LevelV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,02-05,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationStatus&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 01-FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationType&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1,type2-type3,!type4, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Event&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,03-5A,!04,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: SMOKE, CO, TAMPER_ALARM, etc. Leave empty if you don't want to set an alarm code.&lt;br /&gt;
*&amp;lt;tt&amp;gt;TripValue&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 0 = Untrip, 1 = Trip, C = don't update the Tripped variable (only the Alarm Code), X = Ignore&lt;br /&gt;
&lt;br /&gt;
If the TypeV1 or NotificationType are not XX and if there was no match, the function will try the next token.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGroups&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, associate ourselves only with these groups, not all groups. The groups should be given as a comma separated list, like this:&lt;br /&gt;
 1,3,4,255&lt;br /&gt;
&lt;br /&gt;
You could add this variable with a value = 0 if you want to be in NO association groups.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreCommandClass&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows ignoring specific command classes (CC) for that device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC #1&amp;gt;-&amp;lt;Command #1&amp;gt;,&amp;lt;Command #2&amp;gt;;&amp;lt;CC #2&amp;gt;-*;&amp;lt;CC #3&amp;gt;-&amp;lt;Command #1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Both the command classes and the commands are given by their hex code.&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; is used as an wild card indicating all commands.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 26-03,05;71-*;20-03&lt;br /&gt;
&lt;br /&gt;
That means: ignore CC 26 commands 03 and 05, all commands from CC 71, and CC 20 command 03.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TemperatureScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the thermostat setpoint.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;Precision,Scale,Size&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*Precision: The number of decimals&lt;br /&gt;
*Scale: 0 = Celsius, 1 = Fahrenheit&lt;br /&gt;
*Size: Size of the setpoint in bits: number of bits = 2&amp;lt;sup&amp;gt;2+''Size''&amp;lt;/sup&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Size || Number of bits&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 16&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 32&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ZWaveNetwork1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveNetwork1&lt;br /&gt;
*'''File''': S_ZWaveNetwork1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The status of the Z-Wave network:&lt;br /&gt;
*0 = Status not set&lt;br /&gt;
*1 = OK&lt;br /&gt;
*2 = Quiting&lt;br /&gt;
*3 = Waiting to quit&lt;br /&gt;
*4 = No dongle&lt;br /&gt;
*5 = Configuring: still running init/configure scripts&lt;br /&gt;
*6 = Failure&lt;br /&gt;
*7 = Initializing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusText&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Full Z-Wave network status description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastError&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The last Z-Wave error in the network&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the Z-Wave component of the LuaUPnP engine started.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastDongleBackup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave dongle backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastHeal&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Z-Wave version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The unique ID of the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Role&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave specific stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TO3066&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the port where MiOS will search for the Z-Wave dongle. On Vera Lite, this is &amp;lt;tt&amp;gt;/dev/ttyS0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LockComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't search for the Z-Wave dongle on the other available ports if it doesn't find it on &amp;lt;tt&amp;gt;ComPort&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Use45&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use Z-Wave version 3.20 instead of 2.78.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UseMR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use MiOS routing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LimitNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | With MiOS routing: if this is &amp;quot;1&amp;quot;, when the routing table is created, consider only Z-Wave's neighbors as valid options.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically poll the Z-Wave devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds after the LuaUPnP engine has (re-)started before the polling loop begins.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds MiOS must not have transmitted any non-poll command before the next poll command is sent.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds between poll commands.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Minimum number of seconds between poll commands to the same node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneIDs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used for scene controllers. This is a CSV where each item has this format: &amp;lt;tt&amp;gt;node#-button#=ZWaveSceneID&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ResetNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ResetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Reset the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ResetMode&amp;lt;/tt&amp;gt; can be &amp;quot;SIS&amp;quot; or &amp;quot;SUC&amp;quot;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;HomeID&amp;lt;/tt&amp;gt; is a 32 bit hex number representing the new HomeID. If this parameter doesn't exist or is 0, MiOS will generate the new HomeID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ZeroMemory&amp;lt;/tt&amp;gt;: if this is &amp;quot;1&amp;quot;, the memory will be zeroed before resetting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ZeroMemory&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | PutByte&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Used to convert Z-Wave from 2.78 to 3.20 in which case the &amp;lt;tt&amp;gt;StartAddress&amp;lt;/tt&amp;gt; parameter must be &amp;quot;convert502_452&amp;quot; and the rest are ignored.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ReconfigureAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FailedOnly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the Z-Wave nodes. If &amp;lt;tt&amp;gt;FailedOnly&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, only the devices that failed to configure are reconfigured.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Get network update from SUC/SIS.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Update the neighbor nodes of the given device. &amp;lt;tt&amp;gt;Device&amp;lt;/tt&amp;gt; is the device number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | BackupDongle&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Restore&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Backs up the Z-Wave network. The backup is in &amp;lt;tt&amp;gt;/etc/cmh/dongle.dump&amp;lt;/tt&amp;gt;. If &amp;lt;tt&amp;gt;Restore&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, the Z-Wave network is restored from the backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | PollAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | RemoveNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | Puts Vera in exclude mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the exclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be excluded. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in exclude mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit exclude mode after a node is excluded.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits exclude mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | AddNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Puts Vera in include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the inclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be included. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in include mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit include mode after a node is included.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ControllerShift&amp;lt;/tt&amp;gt; must be &amp;quot;0&amp;quot;.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PK_KitDevice&amp;lt;/tt&amp;gt; is the KitDevice number of the device we expect to be included.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ControllerShift&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PK_KitDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DownloadNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Copy the Z-Wave network from a master controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | HealNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryMinutes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Heals/consolidates the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt;: how many minutes to wait for battery operated devices to be discovered.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Node&amp;lt;/tt&amp;gt; is not blank, then only this node will be repaired.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt; is the number of cycles to stress test each node.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Configure&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then all the devices will be re-configured when done.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;ManualRoute&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then only update MiOS routing (overrides other settings).&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt; is the starting heal stage. The valid values are:&lt;br /&gt;
**1 = Request network update.&lt;br /&gt;
**2 = Request neighbor node update.&lt;br /&gt;
**3 = Update the routing tables and neighbor nodes.&lt;br /&gt;
**4 = Calculate the best routes.&lt;br /&gt;
**5 = Re-configure all nodes.&lt;br /&gt;
**6 = Wait &amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt; to request neighbor node update and configure all battery operated nodes.&lt;br /&gt;
**7 = Do a stress test for &amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopStage&amp;lt;/tt&amp;gt;: Same as &amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StressCycles&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | SetPolling&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IsTemporary&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | Set the polling parameters.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;IsTemporary&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then these polling settings will be lost when the LuaUPnP engine is reloaded.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollingEnabled&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayInitial&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayDeadTime&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollMinDelay&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SendData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Sends the Z-Wave &amp;lt;code&amp;gt;Data&amp;lt;/code&amp;gt; to the Z-Wave &amp;lt;code&amp;gt;Node&amp;lt;/code&amp;gt;.&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
1. Set parameter 29 to &amp;quot;3&amp;quot; on node 15:&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=15&amp;amp;Data=x70%204%2029%201%203&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=15, Data=&amp;quot;x70 4 29 1 3&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Turn on a light (node 7):&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=7&amp;amp;Data=x20%201%20xFF&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=7, Data=&amp;quot;x20 1 xFF&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SimulateIncomingData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Calls the Z-Wave message handler for the given data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USBUIRT1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:USBUIRT1&lt;br /&gt;
*'''File''': S_USBUIRT.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the USB port the UIRT is connected to. On Vera Lite this is &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Camera1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Camera1&lt;br /&gt;
*'''File''': S_Camera1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VideoURLs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable defines the streaming parameters, and without it streaming doesn't work. This variable has this structure:&lt;br /&gt;
&amp;lt;tt&amp;gt;Info1:URL1:Info2:URL2:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt; parameters are:&lt;br /&gt;
&lt;br /&gt;
1. The protocol: can be &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. HTTP authentication required: 1 = yes, send the username and password in the request, 0 = no, don't send the username and password&lt;br /&gt;
&lt;br /&gt;
3. Video codec: &amp;lt;tt&amp;gt;mpeg4&amp;lt;/tt&amp;gt; &amp;amp;#124; &amp;lt;tt&amp;gt;mjpeg&amp;lt;/tt&amp;gt; &amp;amp;#124; etc.&lt;br /&gt;
&lt;br /&gt;
4. Audio codec: blank = no audio&lt;br /&gt;
&lt;br /&gt;
5. Resolution: &amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt; = thumbnail, &amp;lt;tt&amp;gt;s&amp;lt;/tt&amp;gt; = small, &amp;lt;tt&amp;gt;m&amp;lt;/tt&amp;gt; = medium, &amp;lt;tt&amp;gt;l&amp;lt;/tt&amp;gt; = large&lt;br /&gt;
&lt;br /&gt;
6. Width: 640&lt;br /&gt;
&lt;br /&gt;
7. Height: 480&lt;br /&gt;
&lt;br /&gt;
8. Players: &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;, a string of characters indicating known good players. &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt; = Quicktime plugin, &amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt; = Android, &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; = iPhone, &amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt; = normal web browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; is the streaming URL compatible with the players specified in &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Currently only the &amp;lt;tt&amp;gt;protocol&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;HTTP auth&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;players&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; parameters are used. The rest of the parameters are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;VideoURLs&amp;lt;/tt&amp;gt; example for VistaCam:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;rtsp,0,mpeg4,,m,640,480,qai:img/media.sav:http,0,mjpeg,,m,640,480,w:img/video.mjpeg:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the URL to get a snapshot from the camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RingBuffer&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable contains the ring buffer parameters.&lt;br /&gt;
The format is: &amp;lt;code&amp;gt;Enabled,BufferSeconds,NumFramesToPurge,Format,URL&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt; can be '''0''' or '''1'''. If it's '''1''', the ring buffer is enabled.&lt;br /&gt;
*&amp;lt;code&amp;gt;BufferSeconds&amp;lt;/code&amp;gt;: how many seconds of video to keep in the buffer. This is limited by the available memory on Vera. Setting this to a large value will cause instability.&lt;br /&gt;
*&amp;lt;code&amp;gt;NumFramesToPurge&amp;lt;/code&amp;gt;: how many frames to wait before attempting to purge.&lt;br /&gt;
*&amp;lt;code&amp;gt;Format&amp;lt;/code&amp;gt; can be '''2'''=MJPEG, '''3'''=MP4.&lt;br /&gt;
*&amp;lt;code&amp;gt;URL&amp;lt;/code&amp;gt; is the streaming URL.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedSensors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: archive a photo whenever one of the sensors is tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SensorArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many seconds to archive the video after the sensor(s) are tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedLights&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: which lights should be turned on when viewing this camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightOptions&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When to turn on the lights:&lt;br /&gt;
*&amp;lt;tt&amp;gt;V&amp;lt;/tt&amp;gt;: when I view the camera from the web or phone;&lt;br /&gt;
*&amp;lt;tt&amp;gt;S&amp;lt;/tt&amp;gt;: when the sensor(s) above are tripped and they are armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;: when the sensors above are tripped and they are *not* armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;: when you take an automatic picture for the archive;&lt;br /&gt;
&lt;br /&gt;
So &amp;lt;tt&amp;gt;VSBA&amp;lt;/tt&amp;gt; means do them all.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Archives a picture from the camera every this number of seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchivePreserveDays&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many days to keep the pictures in the archive.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Streams&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains a list separated by semicolons, where each element in the list has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;stream type&amp;amp;gt;,&amp;amp;lt;protocol&amp;amp;gt;,&amp;amp;lt;url&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The ''stream types'' currently supported are: &amp;lt;tt&amp;gt;flv&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;flv_low&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp_low&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The types with the &amp;quot;_low&amp;quot; suffix are the low bandwidth versions, and are used when streaming through the relay servers.&lt;br /&gt;
&lt;br /&gt;
*The supported ''protocols'' are: &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;flv,http,/img/media.flv;rtsp,rtsp,/img/media.sav;flv_low,http,/img/media.flv?stream=2;rtsp_low,rtsp,/img/media.sav?stream=2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PanTiltZoom1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:PanTiltZoom1&lt;br /&gt;
*'''File''': S_PanTiltZoom1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveLeft&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveRight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveUp&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveDown&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomIn&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomOut&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | GoToPreset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | presetNumber&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Moves the camera to the given preset.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SwitchPower1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:SwitchPower1&lt;br /&gt;
*'''File''': S_SwitchPower1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target state of the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The current state of the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target state of the device. Used to turn a device On or Off.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WindowCovering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:WindowCovering1&lt;br /&gt;
*'''File''': S_WindowCovering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Up&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Down&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stop&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dimming1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:Dimming1&lt;br /&gt;
*'''File''': S_Dimming1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target dimming value; it doesn't represent the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TurnOnBeforeDim&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicates that this device needs to turn on before setting the dimming level.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowZeroLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This device allows to set 0% level in ON state.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetLoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newLoadlevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired dimming level. Used to adjust the dimming level of a device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DoorLock1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:DoorLock1&lt;br /&gt;
*'''File''': S_DoorLock1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the target (desired) door state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current door state. &amp;quot;1&amp;quot; = locked, &amp;quot;0&amp;quot; = unlocked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of PIN codes.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=2&amp;gt;user_code_id,active,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=3&amp;gt;next_available_user_code_id\t&lt;br /&gt;
 user_code_id,active,date_added,date_used,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;VERSION&amp;lt;/tt&amp;gt; is used to track syntax changes.&lt;br /&gt;
*&amp;lt;tt&amp;gt;active&amp;lt;/tt&amp;gt; can be one of the following values:&lt;br /&gt;
**&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; = The code isn't programmed.&lt;br /&gt;
**&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''doesn't''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''does''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = The code is programmed into the lock and will be removed by software later.&lt;br /&gt;
**&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = The code is not programmed into the lock, but it will be programmed later by the software.&lt;br /&gt;
**&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt; = The code is programmed into the lock which supports hardware-based scheduling and will enable/disable it automatically.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid&amp;lt;/tt&amp;gt; is an auto-incrementing number.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid_lock&amp;lt;/tt&amp;gt; is the ID in the lock.&lt;br /&gt;
*The restriction type: '''&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;''' (''weekly'') or '''&amp;lt;tt&amp;gt;d&amp;lt;/tt&amp;gt;''' (''daily repeating'') = day of week based, '''&amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt;''' = time based (''yearly'')&lt;br /&gt;
*&amp;lt;tt&amp;gt;[d&amp;amp;#124;s]&amp;lt;/tt&amp;gt;: internal stuff.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumSchedules&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Maximum number of restrictions supported by the door lock.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 max_weekly,max_yearly,max_daily_repeating&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_weekly&amp;lt;/tt&amp;gt; is the number of weekly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_yearly&amp;lt;/tt&amp;gt; is the number of yearly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_daily_repeating&amp;lt;/tt&amp;gt; is the number of daily repeating restrictions slots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MinPinSize ''and'' MaxPinSize&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The minimum and maximum number of digits of the PIN code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowedPinChars&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Which characters are allowed in a PIN code.&lt;br /&gt;
The only format which is currently supported is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;-D&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
* D&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; is the smallest digit allowed;&lt;br /&gt;
* D&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; is the largest digit allowed.&lt;br /&gt;
Example: &amp;lt;code&amp;gt;2-7&amp;lt;/code&amp;gt; : allow only digits &amp;gt;= 2 and &amp;lt;= 7.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the last used PIN code:&lt;br /&gt;
 UserID=&amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot; UserName=&amp;quot;&amp;lt;pin_code_name&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_PinFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This becomes &amp;quot;1&amp;quot; when a bad PIN code is entered.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_CodeChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockButton&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the Lock button has been pressed on the lock keypad.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the lock fails to operate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UnauthUser&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the user code was entered outside of a valid date.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_VeryLowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is very low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UsesPinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;0&amp;quot;, this door lock doesn't use PIN codes. (e.g. Danalock)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target (desired) state of the door. Used to lock and unlock the door.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCodeName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Adds a PIN code. This code will be added to the &amp;lt;code&amp;gt;PinCodes&amp;lt;/code&amp;gt; variable and to the door lock.&lt;br /&gt;
*&amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; is the PIN code name.&lt;br /&gt;
*&amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; is the new PIN code.&lt;br /&gt;
*&amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; is the PIN code slot number.&lt;br /&gt;
*&amp;lt;code&amp;gt;purge&amp;lt;/code&amp;gt;: if this is '''&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;''', all the schedules programmed into the door lock will be removed.&lt;br /&gt;
*&amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is a json that looks like this:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;user_code&amp;quot;&amp;amp;nbsp;: {&lt;br /&gt;
      &amp;quot;slot&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot;,        // Used when adding/updating a PIN code.&lt;br /&gt;
      &amp;quot;name&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;name&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;code&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_code&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;user&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;restriction_slot&amp;gt;&amp;quot; // Used when adding/updating restrictions.&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;weekly_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;136&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;12:34&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;23:45&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;25&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;13:46&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;21:09&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;daily_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
**''&amp;lt;tt&amp;gt;slot&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;If the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; parameter is present, &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; The parameters from &amp;lt;code&amp;gt;SetPinValidityDate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SetPinValidityWeekly&amp;lt;/code&amp;gt; are also accepted. Internally, this action calls the implementation functions of those actions if &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;, respectively &amp;lt;code&amp;gt;DayOfWeek&amp;lt;/code&amp;gt; parameters are given. The parameters in the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; take precedence over the other parameters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | user&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | purge&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | json&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityDate&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityWeekly&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetPinValidityDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Sets the daily time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartDate&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;StopDate&amp;lt;/tt&amp;gt; are strings representing the dates, formatted like this: &amp;lt;tt&amp;gt;YYYY-MM-DD HH:MM:SS&amp;lt;/tt&amp;gt; (SQL DATETIME)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityDate&amp;amp;UserCode=1&amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityDate&amp;amp;amp;UserCode=1&amp;amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPinValidityWeekly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Sets the weekly time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DayOfWeek&amp;lt;/tt&amp;gt; contains the days of week numbers when the PIN code is restricted. Monday is '&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;' and Sunday is '&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;'.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;tt&amp;gt;1367&amp;lt;/tt&amp;gt; means Monday, Wednesday, Saturday and Sunday.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartHour&amp;lt;/tt&amp;gt; is the hour the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartMinute&amp;lt;/tt&amp;gt; is the minute the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopHour&amp;lt;/tt&amp;gt; is the hour the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopMinute&amp;lt;/tt&amp;gt; is the minute the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityWeekly&amp;amp;UserCode=1&amp;amp;DayOfWeek=1367&amp;amp;StartHour=15&amp;amp;StartMinute=31&amp;amp;StopHour=16&amp;amp;StopMinute=42&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityWeekly&amp;amp;amp;UserCode=1&amp;amp;amp;DayOfWeek=1367&amp;amp;amp;StartHour=15&amp;amp;amp;StartMinute=31&amp;amp;amp;StopHour=16&amp;amp;amp;StopMinute=42&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DayOfWeek&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ClearPinValidity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Clears the given restriction slot.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;slotID&amp;lt;/tt&amp;gt; is the restriction slot number. The starting slot number is 1.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | slotID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ClearPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Removes the PIN code from slot &amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== HVAC_UserOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_UserOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_UserOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired operating mode of the HVAC. Currently MiOS supports only:&lt;br /&gt;
*Off&lt;br /&gt;
*HeatOn&lt;br /&gt;
*CoolOn&lt;br /&gt;
*AutoChangeOver&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual operating mode of the HVAC.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired energy mode. Can be &amp;lt;tt&amp;gt;Normal&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;EnergySavingsMode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual energy mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, and if 0, the thermostat doesn't support auto mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired HVAC operating mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetEnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired energy mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_OperatingState1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HVAC_OperatingState1&lt;br /&gt;
*'''File''': S_HVAC_OperatingState1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents what the HVAC is actually doing right now. The most common actions are:&lt;br /&gt;
*Idle&lt;br /&gt;
*Heating&lt;br /&gt;
*Cooling&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_FanOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_FanOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_FanOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The fan operation mode. Can be:&lt;br /&gt;
*Auto&lt;br /&gt;
*ContinuousOn&lt;br /&gt;
*PeriodicOn&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FanStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current fan state; can be ''On'' or ''Off''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the fan operating mode. Changes the Mode variable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TemperatureSetpoint1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSetpoint1&lt;br /&gt;
*'''File''': S_TemperatureSetpoint1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetpointTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllSetpoints&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma separated list containing the current setpoints for the following thermostat modes: heat, cool, auto.&lt;br /&gt;
Format: &amp;lt;code&amp;gt;HEAT,COOL,AUTO&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;AllSetpoints = 72,74,73&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*72 = heating setpoint&lt;br /&gt;
*74 = cooling setpoint&lt;br /&gt;
*73 = auto mode setpoint&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, the thermostat doesn't support auto setpoint, so set heat+cool this many degrees +/-&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReportMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | char&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;quot;M&amp;quot; = The report correspond to the current mode of operation and should update the setpoint in the received mode (default),&lt;br /&gt;
&amp;quot;S&amp;quot; = The report correspond to the current operating state and should update the setpoint in the current mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Range&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reject setpoint change commands whose setpoint is outside the specified range.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where each range has this format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,C&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;/F&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,F&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The range limits are inclusive, meaning the new setpoint must be &amp;gt;= X&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;lt;= X&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;14,34/58,92;16,44/60,112;-1,32/30,90&amp;lt;/code&amp;gt;&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt; = 14,34/58,92: this means that the '''auto''' setpoint must be between 14 and 34 if it's in Celsius, and between 58 and 92 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt; = 16,44/60,112: this means that the '''cool''' setpoint must be between 16 and 44 if it's in Celsius, and between 60 and 112 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt; = -1,32/30,90: this means that the '''heat''' setpoint must be between -1 and 32 if it's in Celsius, and between 30 and 90 if it's in Fahrenheit.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target setpoint.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TemperatureSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSensor1&lt;br /&gt;
*'''File''': S_TemperatureSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentTemperature&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GenericSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:GenericSensor1&lt;br /&gt;
*'''File''': S_GenericSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LightSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:LightSensor1&lt;br /&gt;
*'''File''': S_LightSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HumiditySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HumiditySensor1&lt;br /&gt;
*'''File''': S_HumiditySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SecuritySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SecuritySensor1&lt;br /&gt;
*'''File''': S_SecuritySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Tripped&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used by MiOS as a way to disable sending notifications when a sensor is tripped/untripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the UNIX time when the sensor last reported that it was tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreTripTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used to filter trip events, the value specify the time in seconds of the filter, internally it will record the last event and after the time has elapsed it will set the variable Tripped to the last known event recorded.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoUntrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used for those devices that doesn't send the Untrip command and requires to automatically untrip after certain time. The value correspond to the time in seconds that the controller will set the Tripped variable to 0 after a Trip event. To disable this feature, set the variable to 0 or remove it from the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetArmed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newArmedValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Arms or disarms the sensor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EnergyMetering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:EnergyMetering1&lt;br /&gt;
*'''File''': S_EnergyMetering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Watts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If the device can report its wattage, this is the value reported by the device, otherwise this is the value supplied by the user in &amp;lt;tt&amp;gt;UserSupliedWattage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Pulse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserSuppliedWattage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | See &amp;lt;tt&amp;gt;Watts&amp;lt;/tt&amp;gt;.&lt;br /&gt;
'''Note:''' For thermostats, &amp;lt;tt&amp;gt;UserSuppliedWattage&amp;lt;/tt&amp;gt; consists of 3 numbers separated by commas. The default is 1500,1500,300. The first number is how many watts are used when the thermostat is in 'heat' mode; the second is how many watts are used when the thermostat is in 'cool' mode; and the third number is for the 'fan only' mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | KWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Log&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of values:&lt;br /&gt;
&amp;lt;code&amp;gt;CurrentConsumption,Average,Peak,LastReading,Seconds&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*''LastReading'' is the Unix time.&lt;br /&gt;
*''Seconds'' is the period of time the ''Average'' value was computed for.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ResetKWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrTransmitter1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrTransmitter1&lt;br /&gt;
*'''File''': S_IrTransmitter1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SendProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sends the given IR code.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SerialPort1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-org:serviceId:SerialPort1&lt;br /&gt;
*'''File''': S_SerialPort1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | path&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the serial port. On Vera Lite it's &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | baud&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The baud rate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | stopbits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of stop bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | databits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of data bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | parity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Can be &amp;lt;tt&amp;gt;odd&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;even&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SceneController1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneController1&lt;br /&gt;
*'''File''': S_SceneController1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneActivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the activated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneDeactivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the deactivated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scenes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The scene ID (as reported by the scene controller) of the last activated or deactivated scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the scene was last activated or deactivated.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManageLeds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, automatically turn on/off the scene indicator lights.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumButtons&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;NumberOfButtons[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,etc.]]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*'''ButtonNumber''' must be from 1 to ''NumberOfButtons''.&lt;br /&gt;
*'''AssociationNumber''' is the association group.&lt;br /&gt;
*'''SceneNumber''' is an event ID, and it's sent instead of the one we program.&lt;br /&gt;
*'''ButtonName''' is the user friendly name of the button.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2,1-1-1=Tap Button,2-2-2=Hold Button&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ButtonMapping&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;OldButtonNumber-Attribute-NewButtonNumber[,OldButtonNumber-Attribute-NewButtonNumber[,etc.]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where '''Attribute''' has the following meaning:&lt;br /&gt;
&lt;br /&gt;
*0 = Key pressed&lt;br /&gt;
*1 = Key is released, sent only as a termination of a Key Held Down sequence&lt;br /&gt;
*2 = Key held down&lt;br /&gt;
*3 = Key double tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
*4 = Key triple tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; These attributes were added in COMMAND_CLASS_CENTRAL_SCENE V2, so it's not available on all the scene controllers.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1-0-1,1-3-2,2-0-3,2-3-4,3-0-5,3-3-6,4-0-7,4-3-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneShortcuts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FiresOffEvents&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ActivationMethod&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave stuff.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SceneControllerLED1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneControllerLED1&lt;br /&gt;
*'''File''': S_SceneControllerLED1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The lights' state. The lower 4 bits of &amp;lt;tt&amp;gt;LightSettings&amp;lt;/tt&amp;gt; are the 4 green LEDs, and the upper 4 are the 4 red LEDs. So, 10001 is an orange light, 110010 is an orange light and a red, etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SetLight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Change a light's state.&lt;br /&gt;
*&amp;lt;tt&amp;gt;newValue&amp;lt;/tt&amp;gt; is the new light state. The valid values are:&lt;br /&gt;
**0 = off&lt;br /&gt;
**1 = green&lt;br /&gt;
**2 = red&lt;br /&gt;
**3 = orange&lt;br /&gt;
*&amp;lt;tt&amp;gt;Indicator&amp;lt;/tt&amp;gt; is the button number.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicator&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrDevice1&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrDevice1&lt;br /&gt;
*'''File''': S_IrDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codesets&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | SendCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Button&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Repeat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Color1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Color1&lt;br /&gt;
*'''File''': S_Color1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Variable&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| CurrentColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| TargetColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ColorMode&lt;br /&gt;
| string&lt;br /&gt;
| Currently used only for Revogi.&lt;br /&gt;
Can have only 2 values:&lt;br /&gt;
*0 = Colorful mode&lt;br /&gt;
*1 = Color temperature mode&lt;br /&gt;
|-&lt;br /&gt;
| ColorChannelPriorities&lt;br /&gt;
| string&lt;br /&gt;
| Specify the color channel priorities like this:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;gt;1&amp;gt;2,3,4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That value can be interpretted like this: channel 0 has priority over channel 1, which has priority over channels 2, 3 and 4.&lt;br /&gt;
|-&lt;br /&gt;
| SupportedColors&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Device_Categories</id>
		<title>Luup Device Categories</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Device_Categories"/>
				<updated>2018-01-23T09:21:53Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
Device categories and subcategories mapping.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category&lt;br /&gt;
! Device Type&lt;br /&gt;
! Subcategory&lt;br /&gt;
! Device Type&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Dimmable Light&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Bulb&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Plugged&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | Switch&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Exterior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Refrigerator&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| Garage Door&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Valve&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 8&lt;br /&gt;
| Relay&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Security Sensor&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Door Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Leak Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Motion Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Smoke Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| CO Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Glass Break Sensor&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | HVAC&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Heater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Custom HVAC&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Camera&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Indoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Outdoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Doorbell&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Door Lock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 8&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Window Covering&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Window Covering&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| ZRTSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 9&lt;br /&gt;
| Remote Control&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 10&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | IR Transmitter&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| IR Transmitter&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| USB UIRT&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 11&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Generic I/O&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Generic I/O&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Repeater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 12&lt;br /&gt;
| Generic Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 13&lt;br /&gt;
| Serial Port&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 14&lt;br /&gt;
| Scene Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 15&lt;br /&gt;
| A/V&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 16&lt;br /&gt;
| Humidity Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 17&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 18&lt;br /&gt;
| Light Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 19&lt;br /&gt;
| Z-Wave Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 20&lt;br /&gt;
| Insteon Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 21&lt;br /&gt;
| Power Meter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 22&lt;br /&gt;
| Alarm Panel&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 23&lt;br /&gt;
| Alarm Partition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 24&lt;br /&gt;
| Siren&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 25&lt;br /&gt;
| Weather&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 26&lt;br /&gt;
| Philips Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 27&lt;br /&gt;
| Appliance&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 28&lt;br /&gt;
| UV Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 29&lt;br /&gt;
| Mouse Trap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 30&lt;br /&gt;
| Doorbell&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 31&lt;br /&gt;
| Keypad&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Device_Categories</id>
		<title>Luup Device Categories</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Device_Categories"/>
				<updated>2018-01-23T09:21:05Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
Device categories and subcategories mapping.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category&lt;br /&gt;
! Device Type&lt;br /&gt;
! Subcategory&lt;br /&gt;
! Device Type&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Dimmable Light&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Bulb&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Plugged&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | Switch&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Exterior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Refrigerator&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| Garage Door&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Valve&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 8&lt;br /&gt;
| Relay&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Security Sensor&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Door Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Leak Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Motion Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Smoke Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| CO Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Glass Break Sensor&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | HVAC&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Heater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Custom HVAC&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Camera&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Indoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Outdoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Doorbell&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Door Lock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 8&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Window Covering&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Window Covering&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| ZRTSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 9&lt;br /&gt;
| Remote Control&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 10&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | IR Transmitter&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| IR Transmitter&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| USB UIRT&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 11&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Generic I/O&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Generic I/O&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Repeater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 12&lt;br /&gt;
| Generic Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 13&lt;br /&gt;
| Serial Port&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 14&lt;br /&gt;
| Scene Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 15&lt;br /&gt;
| A/V&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 16&lt;br /&gt;
| Humidity Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 17&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 18&lt;br /&gt;
| Light Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 19&lt;br /&gt;
| Z-Wave Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 20&lt;br /&gt;
| Insteon Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 21&lt;br /&gt;
| Power Meter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 22&lt;br /&gt;
| Alarm Panel&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 23&lt;br /&gt;
| Alarm Partition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 24&lt;br /&gt;
| Siren&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 25&lt;br /&gt;
| Weather&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 26&lt;br /&gt;
| Philips Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 27&lt;br /&gt;
| Appliance&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 28&lt;br /&gt;
| UV Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 29&lt;br /&gt;
| Mouse Trap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 30&lt;br /&gt;
| Doorbell&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 31&lt;br /&gt;
| Keypad&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</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>2018-01-09T08:25:13Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* Add Release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[http://apps.mios.com 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'''''. '''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt;'''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt; the other visibility types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt; &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;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''IMPORTANT:''' &amp;lt;/span&amp;gt;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: Leave '''Any'''.&lt;br /&gt;
*Compatible firmware: Leave the fields '''empty'''.&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. &amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' the other release types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&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;
The '''Destination path''' is were the file will be downloaded on Vera. The path is relative to '''/etc/cmh-ludl''', which is the default path. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' The path '''must''' start and end with ''''/''' '.&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
e.g. If I want a file to go in ''/www/cmh/skins/default/icons'', the path will be: '''''/../../www/cmh/skins/default/icons/'''''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;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. Leave ''Platform'' to ''Any'', and the ''Compatible firmware'' fields empty. 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 MiOS will check the plugin for malicious code or poorly written code that will affect the Vera stability, and if everything is OK it will be approved.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to install an unreleased plugin version on UI7 ==&lt;br /&gt;
&lt;br /&gt;
On UI7 it's not possible to install an unreleased plugin version directly from apps.mios.com.&lt;br /&gt;
&lt;br /&gt;
However, it's possible to install a specific plugin version on your Vera by using the CreatePlugin action documented on [[Luup UPnP Variables and Actions|this page]].&lt;br /&gt;
&lt;br /&gt;
http://VERA_IP/port_3480/data_request?id=action&amp;amp;serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;amp;action=CreatePlugin&amp;amp;PluginNum=PLUGIN_ID&amp;amp;Version=VERSION_ID&lt;br /&gt;
&lt;br /&gt;
To get the plugin ID and the version ID, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Go to apps.mios.com and edit your plugin (press the '''Edit''' button on the '''My plugins''' page).&lt;br /&gt;
#: The plugin ID can be found at the top of the page:&lt;br /&gt;
#: [[File:plugin_number.png]]&lt;br /&gt;
# Open the '''Versions''' page.&lt;br /&gt;
#: [[File:versions_button.png]]&lt;br /&gt;
# In the '''Versions''' section of the page, click the '''Show files''' button next to the version you want to install.&lt;br /&gt;
#: [[File:show_files_button.png]]&lt;br /&gt;
#: The ID of the version can be found in the URL:&lt;br /&gt;
#:: http://apps.mios.com/download-plugin.php?PK_Version=7768&lt;br /&gt;
#: The ID of the version is ''7768''.&lt;br /&gt;
&lt;br /&gt;
The command for installing the plugin will be:&lt;br /&gt;
&lt;br /&gt;
http://VERA_IP/port_3480/data_request?id=action&amp;amp;serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;amp;action=CreatePlugin&amp;amp;PluginNum=1448&amp;amp;Version=7768&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Mcvflorin</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>2018-01-09T08:21:33Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* Steps for releasing a plugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[http://apps.mios.com 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'''''. '''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt;'''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt; the other visibility types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt; &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;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''IMPORTANT:''' &amp;lt;/span&amp;gt;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. &amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' the other release types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&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;
The '''Destination path''' is were the file will be downloaded on Vera. The path is relative to '''/etc/cmh-ludl''', which is the default path. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' The path '''must''' start and end with ''''/''' '.&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
e.g. If I want a file to go in ''/www/cmh/skins/default/icons'', the path will be: '''''/../../www/cmh/skins/default/icons/'''''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;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. Leave ''Platform'' to ''Any'', and the ''Compatible firmware'' fields empty. 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 MiOS will check the plugin for malicious code or poorly written code that will affect the Vera stability, and if everything is OK it will be approved.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to install an unreleased plugin version on UI7 ==&lt;br /&gt;
&lt;br /&gt;
On UI7 it's not possible to install an unreleased plugin version directly from apps.mios.com.&lt;br /&gt;
&lt;br /&gt;
However, it's possible to install a specific plugin version on your Vera by using the CreatePlugin action documented on [[Luup UPnP Variables and Actions|this page]].&lt;br /&gt;
&lt;br /&gt;
http://VERA_IP/port_3480/data_request?id=action&amp;amp;serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;amp;action=CreatePlugin&amp;amp;PluginNum=PLUGIN_ID&amp;amp;Version=VERSION_ID&lt;br /&gt;
&lt;br /&gt;
To get the plugin ID and the version ID, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Go to apps.mios.com and edit your plugin (press the '''Edit''' button on the '''My plugins''' page).&lt;br /&gt;
#: The plugin ID can be found at the top of the page:&lt;br /&gt;
#: [[File:plugin_number.png]]&lt;br /&gt;
# Open the '''Versions''' page.&lt;br /&gt;
#: [[File:versions_button.png]]&lt;br /&gt;
# In the '''Versions''' section of the page, click the '''Show files''' button next to the version you want to install.&lt;br /&gt;
#: [[File:show_files_button.png]]&lt;br /&gt;
#: The ID of the version can be found in the URL:&lt;br /&gt;
#:: http://apps.mios.com/download-plugin.php?PK_Version=7768&lt;br /&gt;
#: The ID of the version is ''7768''.&lt;br /&gt;
&lt;br /&gt;
The command for installing the plugin will be:&lt;br /&gt;
&lt;br /&gt;
http://VERA_IP/port_3480/data_request?id=action&amp;amp;serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;amp;action=CreatePlugin&amp;amp;PluginNum=1448&amp;amp;Version=7768&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Mcvflorin</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>2018-01-05T07:58:45Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* How to install an unreleased plugin version on UI7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[http://apps.mios.com 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'''''. '''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt;'''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt; the other visibility types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt; &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;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''IMPORTANT:''' &amp;lt;/span&amp;gt;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. &amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' the other release types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&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;
The '''Destination path''' is were the file will be downloaded on Vera. The path is relative to '''/etc/cmh-ludl''', which is the default path. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' The path '''must''' start and end with ''''/''' '.&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
e.g. If I want a file to go in ''/www/cmh/skins/default/icons'', the path will be: '''''/../../www/cmh/skins/default/icons/'''''&lt;br /&gt;
&amp;lt;br&amp;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 MiOS will check the plugin for malicious code or poorly written code that will affect the Vera stability, and if everything is OK it will be approved.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== How to install an unreleased plugin version on UI7 ==&lt;br /&gt;
&lt;br /&gt;
On UI7 it's not possible to install an unreleased plugin version directly from apps.mios.com.&lt;br /&gt;
&lt;br /&gt;
However, it's possible to install a specific plugin version on your Vera by using the CreatePlugin action documented on [[Luup UPnP Variables and Actions|this page]].&lt;br /&gt;
&lt;br /&gt;
http://VERA_IP/port_3480/data_request?id=action&amp;amp;serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;amp;action=CreatePlugin&amp;amp;PluginNum=PLUGIN_ID&amp;amp;Version=VERSION_ID&lt;br /&gt;
&lt;br /&gt;
To get the plugin ID and the version ID, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Go to apps.mios.com and edit your plugin (press the '''Edit''' button on the '''My plugins''' page).&lt;br /&gt;
#: The plugin ID can be found at the top of the page:&lt;br /&gt;
#: [[File:plugin_number.png]]&lt;br /&gt;
# Open the '''Versions''' page.&lt;br /&gt;
#: [[File:versions_button.png]]&lt;br /&gt;
# In the '''Versions''' section of the page, click the '''Show files''' button next to the version you want to install.&lt;br /&gt;
#: [[File:show_files_button.png]]&lt;br /&gt;
#: The ID of the version can be found in the URL:&lt;br /&gt;
#:: http://apps.mios.com/download-plugin.php?PK_Version=7768&lt;br /&gt;
#: The ID of the version is ''7768''.&lt;br /&gt;
&lt;br /&gt;
The command for installing the plugin will be:&lt;br /&gt;
&lt;br /&gt;
http://VERA_IP/port_3480/data_request?id=action&amp;amp;serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;amp;action=CreatePlugin&amp;amp;PluginNum=1448&amp;amp;Version=7768&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/File:Show_files_button.png</id>
		<title>File:Show files button.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/File:Show_files_button.png"/>
				<updated>2018-01-05T07:55:28Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/File:Versions_button.png</id>
		<title>File:Versions button.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/File:Versions_button.png"/>
				<updated>2018-01-05T07:54:24Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/File:Plugin_number.png</id>
		<title>File:Plugin number.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/File:Plugin_number.png"/>
				<updated>2018-01-05T07:38:22Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mcvflorin</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>2018-01-05T07:35:29Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* How to install an unreleased plugin version on UI7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[http://apps.mios.com 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'''''. '''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt;'''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt; the other visibility types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt; &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;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''IMPORTANT:''' &amp;lt;/span&amp;gt;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. &amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' the other release types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&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;
The '''Destination path''' is were the file will be downloaded on Vera. The path is relative to '''/etc/cmh-ludl''', which is the default path. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' The path '''must''' start and end with ''''/''' '.&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
e.g. If I want a file to go in ''/www/cmh/skins/default/icons'', the path will be: '''''/../../www/cmh/skins/default/icons/'''''&lt;br /&gt;
&amp;lt;br&amp;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 MiOS will check the plugin for malicious code or poorly written code that will affect the Vera stability, and if everything is OK it will be approved.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== How to install an unreleased plugin version on UI7 ==&lt;br /&gt;
&lt;br /&gt;
On UI7 it's not possible anymore to install an unreleased plugin version directly from apps.mios.com.&lt;br /&gt;
However, it's possible to install a specific plugin version on your Vera by using the CreatePlugin action documented on  [[Luup UPnP Variables and Actions|this page]].&lt;br /&gt;
&lt;br /&gt;
http://VERA_IP/port_3480/data_request?id=action&amp;amp;serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;amp;action=CreatePlugin&amp;amp;PluginNum=PLUGIN_ID&amp;amp;Version=VERSION_ID&lt;br /&gt;
&lt;br /&gt;
To get the plugin ID and the version ID, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Go to apps.mios.com and edit your plugin (press the '''Edit''' button on the '''My plugins''' page).&lt;br /&gt;
#: The plugin ID can be found at the top of the page:&lt;br /&gt;
#: [[File:plugin_number.png]]&lt;br /&gt;
# Open the '''Versions''' page.&lt;br /&gt;
#: [[File:versions_button.png]]&lt;br /&gt;
# In the '''Versions''' section of the page, click the '''Show files''' button next to the version you want to install.&lt;br /&gt;
#: [[File:show_files_button.png]]&lt;br /&gt;
#: The ID of the version can be found in the URL:&lt;br /&gt;
#:: http://apps.mios.com/download-plugin.php?PK_Version=7768&lt;br /&gt;
#: The ID of the version is ''7768''.&lt;br /&gt;
&lt;br /&gt;
The command for installing the plugin will be:&lt;br /&gt;
&lt;br /&gt;
http://VERA_IP/port_3480/data_request?id=action&amp;amp;serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;amp;action=CreatePlugin&amp;amp;PluginNum=1448&amp;amp;Version=7768&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Mcvflorin</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>2018-01-05T07:31:10Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[http://apps.mios.com 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'''''. '''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt;'''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt; the other visibility types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt; &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;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''IMPORTANT:''' &amp;lt;/span&amp;gt;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. &amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' the other release types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&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;
The '''Destination path''' is were the file will be downloaded on Vera. The path is relative to '''/etc/cmh-ludl''', which is the default path. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' The path '''must''' start and end with ''''/''' '.&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
e.g. If I want a file to go in ''/www/cmh/skins/default/icons'', the path will be: '''''/../../www/cmh/skins/default/icons/'''''&lt;br /&gt;
&amp;lt;br&amp;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 MiOS will check the plugin for malicious code or poorly written code that will affect the Vera stability, and if everything is OK it will be approved.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== How to install an unreleased plugin version on UI7 ==&lt;br /&gt;
&lt;br /&gt;
On UI7 it's not possible anymore to install an unreleased plugin version directly from apps.mios.com.&lt;br /&gt;
However, it's possible to install a specific plugin version on your Vera by using the CreatePlugin action documented on  [[Luup UPnP Variables and Actions|this page]].&lt;br /&gt;
&lt;br /&gt;
http://VERA_IP/port_3480/data_request?id=action&amp;amp;serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;amp;action=CreatePlugin&amp;amp;PluginNum=PLUGIN_ID&amp;amp;Version=VERSION_ID&lt;br /&gt;
&lt;br /&gt;
To get the plugin ID and the version ID, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Go to apps.mios.com and edit your plugin (press the '''Edit''' button on the '''My plugins''' page).&lt;br /&gt;
#: The plugin ID can be found in the URL:&amp;lt;br&amp;gt;&lt;br /&gt;
#:: http://apps.mios.com/edit-plugin.php?id=1448&amp;lt;br&amp;gt;&lt;br /&gt;
#: The plugin ID is ''1448''.&lt;br /&gt;
# Open the '''Versions''' page.&lt;br /&gt;
# In the '''Versions''' section of the page, click the '''Show files''' button next to the version you want to install.&lt;br /&gt;
#: The ID of the version can be found in the URL:&lt;br /&gt;
#:: http://apps.mios.com/download-plugin.php?PK_Version=7768&lt;br /&gt;
#: The ID of the version is ''7768''.&lt;br /&gt;
&lt;br /&gt;
The command for installing the plugin will be:&lt;br /&gt;
&lt;br /&gt;
http://VERA_IP/port_3480/data_request?id=action&amp;amp;serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;amp;action=CreatePlugin&amp;amp;PluginNum=1448&amp;amp;Version=7768&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Mcvflorin</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>2018-01-04T10:52:56Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* Steps for releasing a plugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[http://apps.mios.com 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'''''. '''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt;'''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt; the other visibility types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt; &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;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''IMPORTANT:''' &amp;lt;/span&amp;gt;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. &amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' the other release types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&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;
The '''Destination path''' is were the file will be downloaded on Vera. The path is relative to '''/etc/cmh-ludl''', which is the default path. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' The path '''must''' start and end with ''''/''' '.&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
e.g. If I want a file to go in ''/www/cmh/skins/default/icons'', the path will be: '''''/../../www/cmh/skins/default/icons/'''''&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 MiOS will check the plugin for malicious code or poorly written code that will affect the Vera 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>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Device_Categories</id>
		<title>Luup Device Categories</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Device_Categories"/>
				<updated>2017-12-12T08:53:21Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
Device categories and subcategories mapping.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category&lt;br /&gt;
! Device Type&lt;br /&gt;
! Subcategory&lt;br /&gt;
! Device Type&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Dimmable Light&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Bulb&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Plugged&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Switch&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Exterior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Refrigerator&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| Garage Door&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Valve&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Security Sensor&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Door Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Leak Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Motion Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Smoke Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| CO Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Glass Break Sensor&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | HVAC&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Heater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Custom HVAC&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Camera&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Indoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Outdoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Doorbell&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Door Lock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 8&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Window Covering&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Window Covering&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| ZRTSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 9&lt;br /&gt;
| Remote Control&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 10&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | IR Transmitter&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| IR Transmitter&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| USB UIRT&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 11&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Generic I/O&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Generic I/O&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Repeater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 12&lt;br /&gt;
| Generic Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 13&lt;br /&gt;
| Serial Port&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 14&lt;br /&gt;
| Scene Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 15&lt;br /&gt;
| A/V&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 16&lt;br /&gt;
| Humidity Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 17&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 18&lt;br /&gt;
| Light Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 19&lt;br /&gt;
| Z-Wave Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 20&lt;br /&gt;
| Insteon Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 21&lt;br /&gt;
| Power Meter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 22&lt;br /&gt;
| Alarm Panel&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 23&lt;br /&gt;
| Alarm Partition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 24&lt;br /&gt;
| Siren&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 25&lt;br /&gt;
| Weather&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 26&lt;br /&gt;
| Philips Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 27&lt;br /&gt;
| Appliance&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 28&lt;br /&gt;
| UV Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 29&lt;br /&gt;
| Mouse Trap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 30&lt;br /&gt;
| Doorbell&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 31&lt;br /&gt;
| Keypad&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions</id>
		<title>Luup UPnP Variables and Actions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions"/>
				<updated>2017-12-12T08:53:11Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
This is a list of all the UPnP actions and variables used by MiOS.&lt;br /&gt;
&lt;br /&gt;
Some actions and variables have self-explanatory names, so there's a dash ('-') instead of the description.&lt;br /&gt;
&lt;br /&gt;
== HomeAutomationGateway1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HomeAutomationGateway1&lt;br /&gt;
*'''File''': S_HomeAutomationGateway1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataVersion&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A number that increases each time the data changes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Unique Device Name of the UPnP device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload the LuaUPnP engine.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ModifyUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | inUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Make changes to the UserData.&lt;br /&gt;
*&amp;lt;tt&amp;gt;inUserData&amp;lt;/tt&amp;gt; is the new UserData object which will be added to the UserData or will replace an existent UserData object.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DataFormat&amp;lt;/tt&amp;gt; must be ''json''.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is ''1'' the LuaUPnP engine will reload after the UserData is modified.&lt;br /&gt;
&lt;br /&gt;
For more information read the [[ModifyUserData]] page.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataFormat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Create or change the value of a variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; can be an UDN or a number.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Service&amp;lt;/tt&amp;gt; is the service ID of the variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Variable&amp;lt;/tt&amp;gt; is the variable name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Value&amp;lt;/tt&amp;gt; is the new variable value.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Service&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Variable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | RunScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Run the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SceneOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Turn off all the devices from DEVICE_CATEGORY_DIMMABLE_LIGHT and DEVICE_CATEGORY_SWITCH from the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | RunLua&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Run the given Lua code. If &amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; is specified, the code is run using that device's interface.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Code&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | CreateDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | deviceType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | Create a device using the given parameters.&lt;br /&gt;
*&amp;lt;tt&amp;gt;deviceType&amp;lt;/tt&amp;gt; is the UPnP device type.&lt;br /&gt;
*&amp;lt;tt&amp;gt;internalID&amp;lt;/tt&amp;gt; is the specific ID (also known as ''altid'') of the device; for example, for Z-Wave devices this is the Node ID, and for Insteon device it is the Insteon ID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Description&amp;lt;/tt&amp;gt; is the device name, which is shown to the user on the dashboard.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpDevFilename&amp;lt;/tt&amp;gt; is the UPnP device description file name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpImplFilename&amp;lt;/tt&amp;gt; is the implementation file to use.&lt;br /&gt;
*If the device is IP based, &amp;lt;tt&amp;gt;IpAddress&amp;lt;/tt&amp;gt; is the IP address and port of the device.&lt;br /&gt;
*If this should be the child of another device, &amp;lt;tt&amp;gt;DeviceNumParent&amp;lt;/tt&amp;gt; is the device number of the parent device.&lt;br /&gt;
*&amp;lt;tt&amp;gt;RoomNum&amp;lt;/tt&amp;gt; is the number of the room the device will be in.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; tells the device which plugin to use. The plugin will be installed automatically if it's not already installed.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; is a string containing the variables you want set when the device is created. You can specify multiple variables by separating them with a line feed ('\n'), and use ',' and '=' to separate service, variable and value, like this: &amp;lt;tt&amp;gt;service,variable=value\nservice,variable=value\n&amp;lt;/tt&amp;gt;...&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is '''1''', the Luup engine will be restarted after the device is created.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | internalID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpDevFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpImplFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Username&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Password&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNumParent&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | DeleteDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Delete the device given either through its number, or through its UDN.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | CreatePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Create a plugin with the &amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; number and &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; version. &amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; are the variables that will be set when the device is created. For more information look at the description of the '''CreateDevice''' action above.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Version&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DeletePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Uninstall the given plugin.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | CreatePluginDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Creates a device for plugin #&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ImportUpnpDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | LogIpRequest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetHouseMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Changes the house mode.&lt;br /&gt;
&amp;lt;tt&amp;gt;Mode&amp;lt;/tt&amp;gt; can be:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = Home&lt;br /&gt;
*&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = Away&lt;br /&gt;
*&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = Night&lt;br /&gt;
*&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = Vacation&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HaDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HaDevice1&lt;br /&gt;
*'''File''': S_HaDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CommFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is set to ''1'' if we've lost communication with the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The configuration state of the device:&lt;br /&gt;
*-3 = Configuration failed&lt;br /&gt;
*-2 = Configuration in progress&lt;br /&gt;
*-1 = Device waiting to be configured&lt;br /&gt;
*0 = Device not configured&lt;br /&gt;
*1 = Device successfully configured&lt;br /&gt;
*2 = Device partially configured&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoConfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically check the routing info for this every 12 hours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The battery level reported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the &amp;lt;tt&amp;gt;BatteryLevel&amp;lt;/tt&amp;gt; was reported.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeCheck&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Only for devices that are capable of implementing time, this is when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeOffset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | For &amp;lt;tt&amp;gt;LastTimeCheck&amp;lt;/tt&amp;gt;, this is the timezone offset from UTC when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device information was last updated. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FirstConfigured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device was first configured. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreRoom&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used only by the MiOS scene controller. Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Commands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of &amp;lt;tt&amp;gt;ControlCodes&amp;lt;/tt&amp;gt; for the enabled UI controls. If the &amp;lt;tt&amp;gt;ControlCode&amp;lt;/tt&amp;gt; of an UI control (e.g. button) is not in this list, the button will be disabled (greyed out). If this variable is missing, all controls will be enabled. If this variable is empty, all controls will be disabled.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IODevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The device number to connect to for IO. (this is on the master device)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IOPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The port to receive connections on from &amp;lt;tt&amp;gt;IODevice&amp;lt;/tt&amp;gt;. (this is on the serial port)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReverseOnOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, the commands for some devices are reversed (e.g. the On command will turn the device Off, and vice versa). Not all devices support this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_Alarm&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Currently used only by the water leak sensor, contains the alarm code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeSetting&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains the state of the device for each house mode.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;&amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;...&lt;br /&gt;
&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is empty, the sensor is disarmed/bypassed.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is &amp;quot;A&amp;quot;, the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1:;2:A;3:A;4:A&lt;br /&gt;
&lt;br /&gt;
*In &amp;lt;tt&amp;gt;Home&amp;lt;/tt&amp;gt;(1) mode the sensor is disarmed;&lt;br /&gt;
*in &amp;lt;tt&amp;gt;Away&amp;lt;/tt&amp;gt;(2), &amp;lt;tt&amp;gt;Night&amp;lt;/tt&amp;gt;(3) and &amp;lt;tt&amp;gt;Vacation&amp;lt;/tt&amp;gt;(4) modes the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Children&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of KitDevice numbers.&lt;br /&gt;
LuaUPnP will create a child device for every item in the list, with the specified KitDevice properties.&lt;br /&gt;
&lt;br /&gt;
Can be used to add children to devices which don't have MultiChannel support.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the polls are doing, where 5.0 means that the last 50 polls were successful and 0.0 means that all the last 50 polls were unsuccessful.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the wakeups are being received, where 5.0 means that the we received the last 50 wakeups when they have suppose to be sent and 0.0 means that we didn't receive any of the 50 last wakeups that the device should have sent&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''See the description of this variable in ZWaveDevice1 section, because it should belong to the service urn:micasaverde-com:serviceId:ZWaveDevice1, but it was kept in urn:micasaverde-com:serviceId:HaDevice1 to maintain backward compatibility.'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeConfiguration&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Implementation of custom preset modes for any device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;[&amp;amp;#124;&amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;upnp_action&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;service&amp;amp;gt;/&amp;amp;lt;action&amp;amp;gt;/&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;[&amp;amp;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the value is '?', it means that it's a wildcard and the ''ModeSettings'' variable should contain a comma separated list of values in order to substitute this '?' wildcard. If the value is not '?', then the value is fixed and it should be URL encoded.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 h;h code;urn:upnp-org:serviceId:SwitchPower1/SetTarget/newTargetValue=?&amp;amp;otherParameter=45&amp;amp;another=?&amp;amp;#124;s;s code;urn:upnp-org:serviceId:Dimming1/SetTargetLevel/newLevel=34&amp;amp;other=?&amp;amp;another=4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeControls&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used to tell the UI what controls to show in the House modes configuration page for the actions in the ''CustomModeConfiguration'' variable.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;;&amp;lt;control info for arg #2&amp;gt;;..;&amp;lt;control info for arg #N&amp;gt;[&amp;amp;#124;&amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | StressTest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stress test the Z-Wave device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove the device from the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ToggleState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Toggle the state of the device (e.g. if the device it's Off, turns it On). The device must have a binary state (On/Off, Locked/Unlocked, etc.).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ZWaveDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveDevice1&lt;br /&gt;
*'''File''': S_ZWaveDevice1.xml ''(nonexistent)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the polling frequency for a node (i.e. the minimum number of seconds between two poll commands to the same node). If this variable doesn't exist or is blank, the default polling frequency set in the &amp;lt;tt&amp;gt;ZWaveNetwork1&amp;lt;/tt&amp;gt;'s &amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt; variable will be used. If it's '''0''', polling will be disabled for this node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollCommands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of command classes/commands to poll. '&amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt;' means the device won't respond to any poll.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChEndpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Neighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbor devices' node IDs. '1' is the Vera's node ID.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NeighborsInverse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbors that see us.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Capabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The first 6 numbers in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are what is reported by the &amp;lt;tt&amp;gt;ZW_GetNodeProtocolInfo&amp;lt;/tt&amp;gt; function: Capability, Security, Reserved, Basic Device Class [, Generic Device Class, Specific Device Class]. If the &amp;lt;tt&amp;gt;Capability&amp;lt;/tt&amp;gt; is &amp;gt;= 128, then the device listens for commands, otherwise it's a battery operated device that only wakes up occasionally. After the '&amp;amp;#124;' in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are the command classes supported. More information here: [[ZWave Command Classes]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SecurityFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't talk to this node with security even if the node reports it can.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastReset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When we last reset the node association. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How often this battery operated device should wake up to report its status. The default value is 1800 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredWakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The wakeup interval already configured on the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastWakeup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device last woke up and reported its status. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastRouteUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device's routing information was last checked/updated. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Health&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A rating from 0-5. A large number means that MiOS can communicate with it easily.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HealthDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The date the rating was assigned. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings read from the device.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number,variable1_value,variable2_number,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings set by the user.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number-variable1_description,variable1_data_type,variable1_value,variable2_number-variable2_description,variable2_data_type,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This are the association settings read from the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave associations for a device are stored in this variable.&lt;br /&gt;
The associations are delimited by ';', 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 IDs, not device IDs (ie the 'altid' in the UI). If the node ID is 'z', it means the node ID of the device for which the variable is set.&lt;br /&gt;
&lt;br /&gt;
For multi-channel there is a '.' following the node ID with the endpoint ID.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1,3.4,7;2,5.1,8&lt;br /&gt;
&lt;br /&gt;
Means group #1 is associated with node #3 endpoint #4 and with node #7, which is non-multi-channel; group #2 is associated with node #5 endpoint #1, and with node #8.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of association groups supported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NonceACK&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManufacturerInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device information. Format:&lt;br /&gt;
 ManufacturerID,ProductType,ProductID&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is what's reported by the COMMAND_CLASS_VERSION command VERSION_REPORT. There are 5 values: Z-Wave Library Type, Z-Wave Protocol Version, Z-Wave Protocol Sub Version, Application Version, Application Sub Version. The &amp;lt;tt&amp;gt;Application Version&amp;lt;/tt&amp;gt; is specific to the device and not defined by Z-Wave.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetPointInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of the supported setpoint types:&lt;br /&gt;
*&amp;lt;tt&amp;gt;H1&amp;lt;/tt&amp;gt; = Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C1&amp;lt;/tt&amp;gt; = Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;F1&amp;lt;/tt&amp;gt; = Furnace&lt;br /&gt;
*&amp;lt;tt&amp;gt;D1&amp;lt;/tt&amp;gt; = Dry Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;MA&amp;lt;/tt&amp;gt; = Moist Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;AC&amp;lt;/tt&amp;gt; = Auto changeover&lt;br /&gt;
*&amp;lt;tt&amp;gt;H2&amp;lt;/tt&amp;gt; = Energy Save Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C2&amp;lt;/tt&amp;gt; = Energy Save Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;AH&amp;lt;/tt&amp;gt; = Away Heating&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of the command classes supported by this device. (hexadecimal numbers)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InitialName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The name that was initially set when the node was first added.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified name when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;VariablesSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredAssoc&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;AssociationSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Documentation&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL of the documentation used on the ''Device Options'' page.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The meter type:&lt;br /&gt;
*1 = electric&lt;br /&gt;
*2 = gas&lt;br /&gt;
*3 = water&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A bit map of the supported meter scales.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | List of the supported alarm types.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollOk, PollTxFail, PollNoReply&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | These variables are incremented each time the last poll job has the status they describe. They are reset after each network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A route specified by the end-user. This is a '''dot'''-separated list of nodes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllRoutesFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when all the manual routes have failed.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This contains a list of various routes chosen by profilings.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 route1_node1.route1_node2...-route1_score[x],route2_node1.route2_node2...-route2_score[x],...&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;score&amp;lt;/tt&amp;gt; is a measure of latency and accuracy, the lower the number, the better. '&amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;' means that the last attempt to use this route failed, so it won't be used anymore.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreDirectScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SwitchMlSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BasicSetCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining actions for BASIC_SET messages.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Value&amp;gt;=&amp;lt;Action&amp;gt;&amp;lt;Endpoint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*Value &amp;amp;nbsp;: the BASIC_SET Value; if Value is &amp;quot;XX&amp;quot;, it means any value&lt;br /&gt;
*Action &amp;amp;nbsp;: the Action to perform; the supported values are: T&amp;lt;tt&amp;gt;=Trip&amp;lt;/tt&amp;gt;, U&amp;lt;tt&amp;gt;=Untrip&amp;lt;/tt&amp;gt;, O&amp;lt;tt&amp;gt;=On&amp;lt;/tt&amp;gt;, F&amp;lt;tt&amp;gt;=Off&amp;lt;/tt&amp;gt;, D&amp;lt;tt&amp;gt;=Dim&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Endpoint &amp;amp;nbsp;: the Endpoint device ID (altid); if Endpoint=0, it means the parent node, or the current node if the device has no children&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=Ue1,FF=Te1&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Untrip endpoint &amp;quot;e1&amp;quot;; if receive 0xFF, Trip endpoint &amp;quot;e1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;XX=D02&amp;lt;/code&amp;gt; =&amp;gt; Dim endpoint 02 to whatever value received&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=T0,FF=U0&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Trip the current node; if receive 0xFF, Untrip the current node&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SupportedMRTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining which meter report types are supported by the device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;;&amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*CC Hex &amp;amp;nbsp;: the Hex value of the command class (without 0x):&lt;br /&gt;
**0x31 for COMMAND_CLASS_SENSOR_MULTILEVEL&lt;br /&gt;
**0x32 for COMMAND_CLASS_METER&lt;br /&gt;
*Supported Type &amp;amp;nbsp;: The HEX value of the type supported for the Command class without 0x&lt;br /&gt;
**Supported types for COMMAND_CLASS_SENSOR_MULTILEVEL:&lt;br /&gt;
***Temperature = 0x01&lt;br /&gt;
***General = 0x02&lt;br /&gt;
***Luminance = 0x03&lt;br /&gt;
***Power = 0x04&lt;br /&gt;
***RelativeHumidity = 0x05&lt;br /&gt;
***Velocity = 0x06&lt;br /&gt;
***Direction = 0x07&lt;br /&gt;
***AtmosphericPressure = 0x08&lt;br /&gt;
***BarometricPressure = 0x09&lt;br /&gt;
***SolarRadiation = 0x0A&lt;br /&gt;
***DewPoint = 0x0B&lt;br /&gt;
***RainRate = 0x0C&lt;br /&gt;
***TideLevel = 0x0D&lt;br /&gt;
***Weight = 0x0E&lt;br /&gt;
***Voltage = 0x0F&lt;br /&gt;
***Current = 0x10&lt;br /&gt;
***CO2level = 0x11&lt;br /&gt;
***AirFlow = 0x12&lt;br /&gt;
***TankCapacity = 0x13&lt;br /&gt;
***Distance = 0x14&lt;br /&gt;
***SeismicIntensity = 0x19&lt;br /&gt;
***UltraViolet = 0x1B&lt;br /&gt;
&lt;br /&gt;
**Supported types for COMMAND_CLASS_METER:&lt;br /&gt;
***Electric=0x01&lt;br /&gt;
***Gas=0x02&lt;br /&gt;
***Water=0x03&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;31-0F,0E,10,1B;32-01,03&amp;lt;/code&amp;gt; =&amp;gt; Device supports Voltage, Weight, Current and UltraViolet for COMMAND_CLASS_SENSOR_MULTILEVEL and Electric and Water from COMMAND_CLASS_METER&lt;br /&gt;
&lt;br /&gt;
If the variable is empty it will be treated as support anything. If the variable does not contain a command class that command class will be treated as support everything.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NoChildren&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this variable is '''1''', delete the child devices, and don't allow the creation of other child devices, to avoid creating ghost devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''(NOTE: this is its new service. ''urn:micasaverde-com:serviceId:HaDevice1'' was left unchanged to mantain backward compatibility.)'''&lt;br /&gt;
Allows setting what each Alarm Type does for devices using COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION. The format is:&lt;br /&gt;
&lt;br /&gt;
 AlarmTypes:AlarmLevels:AlarmCode:Action;AlarmTypes:AlarmLevels:AlarmCode:Action&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmTypes&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;type1,type2-type3,!type4&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmLevels&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;00,01,05-20,!FF&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;SMOKE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAMPER_ALARM&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Action&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = don't update the ''Tripped'' variable, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = update the ''Tripped'' variable, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = ignore the message (i.e. don't update the ''sl_Alarm'' variable)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 01:FF:SMOKE:1;0C:FF::1;0D:FF:TAMPER_ALARM:0&lt;br /&gt;
&lt;br /&gt;
*if Alarm Type is ''0x01'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;SMOKE&amp;quot; and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0C'' and the Alarm Level is ''0xFF'', don't update the ''sl_Alarm'' variable, and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0D'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;TAMPER_ALARM&amp;quot;, but don't trip the sensor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypesV2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows customizing the handling of the COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION &amp;gt;= v2 messages.&lt;br /&gt;
The format is a ';' separated list of tokens. Format of each token:&lt;br /&gt;
&lt;br /&gt;
 TypesV1:LevelV1:NotificationStatus:NotificationType:Event:AlarmCode:TripValue&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;TypesV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1_v1,type2_v1-type3_v1,!type4_v1, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;LevelV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,02-05,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationStatus&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 01-FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationType&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1,type2-type3,!type4, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Event&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,03-5A,!04,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: SMOKE, CO, TAMPER_ALARM, etc. Leave empty if you don't want to set an alarm code.&lt;br /&gt;
*&amp;lt;tt&amp;gt;TripValue&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 0 = Untrip, 1 = Trip, C = don't update the Tripped variable (only the Alarm Code), X = Ignore&lt;br /&gt;
&lt;br /&gt;
If the TypeV1 or NotificationType are not XX and if there was no match, the function will try the next token.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGroups&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, associate ourselves only with these groups, not all groups. The groups should be given as a comma separated list, like this:&lt;br /&gt;
 1,3,4,255&lt;br /&gt;
&lt;br /&gt;
You could add this variable with a value = 0 if you want to be in NO association groups.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreCommandClass&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows ignoring specific command classes (CC) for that device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC #1&amp;gt;-&amp;lt;Command #1&amp;gt;,&amp;lt;Command #2&amp;gt;;&amp;lt;CC #2&amp;gt;-*;&amp;lt;CC #3&amp;gt;-&amp;lt;Command #1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Both the command classes and the commands are given by their hex code.&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; is used as an wild card indicating all commands.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 26-03,05;71-*;20-03&lt;br /&gt;
&lt;br /&gt;
That means: ignore CC 26 commands 03 and 05, all commands from CC 71, and CC 20 command 03.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TemperatureScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the thermostat setpoint.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;Precision,Scale,Size&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*Precision: The number of decimals&lt;br /&gt;
*Scale: 0 = Celsius, 1 = Fahrenheit&lt;br /&gt;
*Size: Size of the setpoint in bits: number of bits = 2&amp;lt;sup&amp;gt;2+''Size''&amp;lt;/sup&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Size || Number of bits&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 16&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 32&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ZWaveNetwork1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveNetwork1&lt;br /&gt;
*'''File''': S_ZWaveNetwork1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The status of the Z-Wave network:&lt;br /&gt;
*0 = Status not set&lt;br /&gt;
*1 = OK&lt;br /&gt;
*2 = Quiting&lt;br /&gt;
*3 = Waiting to quit&lt;br /&gt;
*4 = No dongle&lt;br /&gt;
*5 = Configuring: still running init/configure scripts&lt;br /&gt;
*6 = Failure&lt;br /&gt;
*7 = Initializing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusText&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Full Z-Wave network status description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastError&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The last Z-Wave error in the network&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the Z-Wave component of the LuaUPnP engine started.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastDongleBackup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave dongle backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastHeal&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Z-Wave version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The unique ID of the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Role&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave specific stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TO3066&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the port where MiOS will search for the Z-Wave dongle. On Vera Lite, this is &amp;lt;tt&amp;gt;/dev/ttyS0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LockComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't search for the Z-Wave dongle on the other available ports if it doesn't find it on &amp;lt;tt&amp;gt;ComPort&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Use45&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use Z-Wave version 3.20 instead of 2.78.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UseMR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use MiOS routing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LimitNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | With MiOS routing: if this is &amp;quot;1&amp;quot;, when the routing table is created, consider only Z-Wave's neighbors as valid options.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically poll the Z-Wave devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds after the LuaUPnP engine has (re-)started before the polling loop begins.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds MiOS must not have transmitted any non-poll command before the next poll command is sent.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds between poll commands.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Minimum number of seconds between poll commands to the same node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneIDs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used for scene controllers. This is a CSV where each item has this format: &amp;lt;tt&amp;gt;node#-button#=ZWaveSceneID&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ResetNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ResetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Reset the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ResetMode&amp;lt;/tt&amp;gt; can be &amp;quot;SIS&amp;quot; or &amp;quot;SUC&amp;quot;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;HomeID&amp;lt;/tt&amp;gt; is a 32 bit hex number representing the new HomeID. If this parameter doesn't exist or is 0, MiOS will generate the new HomeID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ZeroMemory&amp;lt;/tt&amp;gt;: if this is &amp;quot;1&amp;quot;, the memory will be zeroed before resetting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ZeroMemory&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | PutByte&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Used to convert Z-Wave from 2.78 to 3.20 in which case the &amp;lt;tt&amp;gt;StartAddress&amp;lt;/tt&amp;gt; parameter must be &amp;quot;convert502_452&amp;quot; and the rest are ignored.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ReconfigureAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FailedOnly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the Z-Wave nodes. If &amp;lt;tt&amp;gt;FailedOnly&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, only the devices that failed to configure are reconfigured.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Get network update from SUC/SIS.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Update the neighbor nodes of the given device. &amp;lt;tt&amp;gt;Device&amp;lt;/tt&amp;gt; is the device number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | BackupDongle&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Restore&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Backs up the Z-Wave network. The backup is in &amp;lt;tt&amp;gt;/etc/cmh/dongle.dump&amp;lt;/tt&amp;gt;. If &amp;lt;tt&amp;gt;Restore&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, the Z-Wave network is restored from the backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | PollAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | RemoveNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | Puts Vera in exclude mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the exclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be excluded. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in exclude mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit exclude mode after a node is excluded.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits exclude mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | AddNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Puts Vera in include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the inclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be included. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in include mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit include mode after a node is included.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ControllerShift&amp;lt;/tt&amp;gt; must be &amp;quot;0&amp;quot;.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PK_KitDevice&amp;lt;/tt&amp;gt; is the KitDevice number of the device we expect to be included.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ControllerShift&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PK_KitDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DownloadNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Copy the Z-Wave network from a master controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | HealNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryMinutes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Heals/consolidates the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt;: how many minutes to wait for battery operated devices to be discovered.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Node&amp;lt;/tt&amp;gt; is not blank, then only this node will be repaired.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt; is the number of cycles to stress test each node.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Configure&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then all the devices will be re-configured when done.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;ManualRoute&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then only update MiOS routing (overrides other settings).&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt; is the starting heal stage. The valid values are:&lt;br /&gt;
**1 = Request network update.&lt;br /&gt;
**2 = Request neighbor node update.&lt;br /&gt;
**3 = Update the routing tables and neighbor nodes.&lt;br /&gt;
**4 = Calculate the best routes.&lt;br /&gt;
**5 = Re-configure all nodes.&lt;br /&gt;
**6 = Wait &amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt; to request neighbor node update and configure all battery operated nodes.&lt;br /&gt;
**7 = Do a stress test for &amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopStage&amp;lt;/tt&amp;gt;: Same as &amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StressCycles&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | SetPolling&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IsTemporary&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | Set the polling parameters.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;IsTemporary&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then these polling settings will be lost when the LuaUPnP engine is reloaded.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollingEnabled&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayInitial&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayDeadTime&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollMinDelay&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SendData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Sends the Z-Wave &amp;lt;code&amp;gt;Data&amp;lt;/code&amp;gt; to the Z-Wave &amp;lt;code&amp;gt;Node&amp;lt;/code&amp;gt;.&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
1. Set parameter 29 to &amp;quot;3&amp;quot; on node 15:&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=15&amp;amp;Data=x70%204%2029%201%203&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=15, Data=&amp;quot;x70 4 29 1 3&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Turn on a light (node 7):&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=7&amp;amp;Data=x20%201%20xFF&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=7, Data=&amp;quot;x20 1 xFF&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SimulateIncomingData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Calls the Z-Wave message handler for the given data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USBUIRT1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:USBUIRT1&lt;br /&gt;
*'''File''': S_USBUIRT.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the USB port the UIRT is connected to. On Vera Lite this is &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Camera1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Camera1&lt;br /&gt;
*'''File''': S_Camera1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VideoURLs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable defines the streaming parameters, and without it streaming doesn't work. This variable has this structure:&lt;br /&gt;
&amp;lt;tt&amp;gt;Info1:URL1:Info2:URL2:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt; parameters are:&lt;br /&gt;
&lt;br /&gt;
1. The protocol: can be &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. HTTP authentication required: 1 = yes, send the username and password in the request, 0 = no, don't send the username and password&lt;br /&gt;
&lt;br /&gt;
3. Video codec: &amp;lt;tt&amp;gt;mpeg4&amp;lt;/tt&amp;gt; &amp;amp;#124; &amp;lt;tt&amp;gt;mjpeg&amp;lt;/tt&amp;gt; &amp;amp;#124; etc.&lt;br /&gt;
&lt;br /&gt;
4. Audio codec: blank = no audio&lt;br /&gt;
&lt;br /&gt;
5. Resolution: &amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt; = thumbnail, &amp;lt;tt&amp;gt;s&amp;lt;/tt&amp;gt; = small, &amp;lt;tt&amp;gt;m&amp;lt;/tt&amp;gt; = medium, &amp;lt;tt&amp;gt;l&amp;lt;/tt&amp;gt; = large&lt;br /&gt;
&lt;br /&gt;
6. Width: 640&lt;br /&gt;
&lt;br /&gt;
7. Height: 480&lt;br /&gt;
&lt;br /&gt;
8. Players: &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;, a string of characters indicating known good players. &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt; = Quicktime plugin, &amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt; = Android, &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; = iPhone, &amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt; = normal web browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; is the streaming URL compatible with the players specified in &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Currently only the &amp;lt;tt&amp;gt;protocol&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;HTTP auth&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;players&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; parameters are used. The rest of the parameters are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;VideoURLs&amp;lt;/tt&amp;gt; example for VistaCam:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;rtsp,0,mpeg4,,m,640,480,qai:img/media.sav:http,0,mjpeg,,m,640,480,w:img/video.mjpeg:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the URL to get a snapshot from the camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RingBuffer&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable contains the ring buffer parameters.&lt;br /&gt;
The format is: &amp;lt;code&amp;gt;Enabled,BufferSeconds,NumFramesToPurge,Format,URL&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt; can be '''0''' or '''1'''. If it's '''1''', the ring buffer is enabled.&lt;br /&gt;
*&amp;lt;code&amp;gt;BufferSeconds&amp;lt;/code&amp;gt;: how many seconds of video to keep in the buffer. This is limited by the available memory on Vera. Setting this to a large value will cause instability.&lt;br /&gt;
*&amp;lt;code&amp;gt;NumFramesToPurge&amp;lt;/code&amp;gt;: how many frames to wait before attempting to purge.&lt;br /&gt;
*&amp;lt;code&amp;gt;Format&amp;lt;/code&amp;gt; can be '''2'''=MJPEG, '''3'''=MP4.&lt;br /&gt;
*&amp;lt;code&amp;gt;URL&amp;lt;/code&amp;gt; is the streaming URL.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedSensors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: archive a photo whenever one of the sensors is tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SensorArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many seconds to archive the video after the sensor(s) are tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedLights&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: which lights should be turned on when viewing this camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightOptions&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When to turn on the lights:&lt;br /&gt;
*&amp;lt;tt&amp;gt;V&amp;lt;/tt&amp;gt;: when I view the camera from the web or phone;&lt;br /&gt;
*&amp;lt;tt&amp;gt;S&amp;lt;/tt&amp;gt;: when the sensor(s) above are tripped and they are armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;: when the sensors above are tripped and they are *not* armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;: when you take an automatic picture for the archive;&lt;br /&gt;
&lt;br /&gt;
So &amp;lt;tt&amp;gt;VSBA&amp;lt;/tt&amp;gt; means do them all.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Archives a picture from the camera every this number of seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchivePreserveDays&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many days to keep the pictures in the archive.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Streams&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains a list separated by semicolons, where each element in the list has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;stream type&amp;amp;gt;,&amp;amp;lt;protocol&amp;amp;gt;,&amp;amp;lt;url&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The ''stream types'' currently supported are: &amp;lt;tt&amp;gt;flv&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;flv_low&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp_low&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The types with the &amp;quot;_low&amp;quot; suffix are the low bandwidth versions, and are used when streaming through the relay servers.&lt;br /&gt;
&lt;br /&gt;
*The supported ''protocols'' are: &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;flv,http,/img/media.flv;rtsp,rtsp,/img/media.sav;flv_low,http,/img/media.flv?stream=2;rtsp_low,rtsp,/img/media.sav?stream=2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PanTiltZoom1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:PanTiltZoom1&lt;br /&gt;
*'''File''': S_PanTiltZoom1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveLeft&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveRight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveUp&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveDown&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomIn&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomOut&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | GoToPreset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | presetNumber&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Moves the camera to the given preset.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SwitchPower1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:SwitchPower1&lt;br /&gt;
*'''File''': S_SwitchPower1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target state of the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The current state of the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target state of the device. Used to turn a device On or Off.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WindowCovering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:WindowCovering1&lt;br /&gt;
*'''File''': S_WindowCovering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Up&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Down&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stop&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dimming1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:Dimming1&lt;br /&gt;
*'''File''': S_Dimming1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target dimming value; it doesn't represent the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TurnOnBeforeDim&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicates that this device needs to turn on before setting the dimming level.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowZeroLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This device allows to set 0% level in ON state.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetLoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newLoadlevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired dimming level. Used to adjust the dimming level of a device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DoorLock1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:DoorLock1&lt;br /&gt;
*'''File''': S_DoorLock1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the target (desired) door state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current door state. &amp;quot;1&amp;quot; = locked, &amp;quot;0&amp;quot; = unlocked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of PIN codes.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=2&amp;gt;user_code_id,active,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=3&amp;gt;next_available_user_code_id\t&lt;br /&gt;
 user_code_id,active,date_added,date_used,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;VERSION&amp;lt;/tt&amp;gt; is used to track syntax changes.&lt;br /&gt;
*&amp;lt;tt&amp;gt;active&amp;lt;/tt&amp;gt; can be one of the following values:&lt;br /&gt;
**&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; = The code isn't programmed.&lt;br /&gt;
**&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''doesn't''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''does''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = The code is programmed into the lock and will be removed by software later.&lt;br /&gt;
**&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = The code is not programmed into the lock, but it will be programmed later by the software.&lt;br /&gt;
**&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt; = The code is programmed into the lock which supports hardware-based scheduling and will enable/disable it automatically.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid&amp;lt;/tt&amp;gt; is an auto-incrementing number.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid_lock&amp;lt;/tt&amp;gt; is the ID in the lock.&lt;br /&gt;
*The restriction type: '''&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;''' (''weekly'') or '''&amp;lt;tt&amp;gt;d&amp;lt;/tt&amp;gt;''' (''daily repeating'') = day of week based, '''&amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt;''' = time based (''yearly'')&lt;br /&gt;
*&amp;lt;tt&amp;gt;[d&amp;amp;#124;s]&amp;lt;/tt&amp;gt;: internal stuff.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumSchedules&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Maximum number of restrictions supported by the door lock.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 max_weekly,max_yearly,max_daily_repeating&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_weekly&amp;lt;/tt&amp;gt; is the number of weekly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_yearly&amp;lt;/tt&amp;gt; is the number of yearly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_daily_repeating&amp;lt;/tt&amp;gt; is the number of daily repeating restrictions slots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MinPinSize ''and'' MaxPinSize&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The minimum and maximum number of digits of the PIN code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowedPinChars&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Which characters are allowed in a PIN code.&lt;br /&gt;
The only format which is currently supported is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;-D&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
* D&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; is the smallest digit allowed;&lt;br /&gt;
* D&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; is the largest digit allowed.&lt;br /&gt;
Example: &amp;lt;code&amp;gt;2-7&amp;lt;/code&amp;gt; : allow only digits &amp;gt;= 2 and &amp;lt;= 7.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the last used PIN code:&lt;br /&gt;
 UserID=&amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot; UserName=&amp;quot;&amp;lt;pin_code_name&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_PinFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This becomes &amp;quot;1&amp;quot; when a bad PIN code is entered.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_CodeChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockButton&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the Lock button has been pressed on the lock keypad.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the lock fails to operate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UnauthUser&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the user code was entered outside of a valid date.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_VeryLowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is very low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UsesPinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;0&amp;quot;, this door lock doesn't use PIN codes. (e.g. Danalock)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target (desired) state of the door. Used to lock and unlock the door.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCodeName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Adds a PIN code. This code will be added to the &amp;lt;code&amp;gt;PinCodes&amp;lt;/code&amp;gt; variable and to the door lock.&lt;br /&gt;
*&amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; is the PIN code name.&lt;br /&gt;
*&amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; is the new PIN code.&lt;br /&gt;
*&amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; is the PIN code slot number.&lt;br /&gt;
*&amp;lt;code&amp;gt;purge&amp;lt;/code&amp;gt;: if this is '''&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;''', all the schedules programmed into the door lock will be removed.&lt;br /&gt;
*&amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is a json that looks like this:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;user_code&amp;quot;&amp;amp;nbsp;: {&lt;br /&gt;
      &amp;quot;slot&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot;,        // Used when adding/updating a PIN code.&lt;br /&gt;
      &amp;quot;name&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;name&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;code&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_code&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;user&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;restriction_slot&amp;gt;&amp;quot; // Used when adding/updating restrictions.&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;weekly_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;136&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;12:34&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;23:45&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;25&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;13:46&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;21:09&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;daily_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
**''&amp;lt;tt&amp;gt;slot&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;If the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; parameter is present, &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; The parameters from &amp;lt;code&amp;gt;SetPinValidityDate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SetPinValidityWeekly&amp;lt;/code&amp;gt; are also accepted. Internally, this action calls the implementation functions of those actions if &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;, respectively &amp;lt;code&amp;gt;DayOfWeek&amp;lt;/code&amp;gt; parameters are given. The parameters in the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; take precedence over the other parameters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | user&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | purge&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | json&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityDate&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityWeekly&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetPinValidityDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Sets the daily time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartDate&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;StopDate&amp;lt;/tt&amp;gt; are strings representing the dates, formatted like this: &amp;lt;tt&amp;gt;YYYY-MM-DD HH:MM:SS&amp;lt;/tt&amp;gt; (SQL DATETIME)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityDate&amp;amp;UserCode=1&amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityDate&amp;amp;amp;UserCode=1&amp;amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPinValidityWeekly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Sets the weekly time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DayOfWeek&amp;lt;/tt&amp;gt; contains the days of week numbers when the PIN code is restricted. Monday is '&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;' and Sunday is '&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;'.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;tt&amp;gt;1367&amp;lt;/tt&amp;gt; means Monday, Wednesday, Saturday and Sunday.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartHour&amp;lt;/tt&amp;gt; is the hour the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartMinute&amp;lt;/tt&amp;gt; is the minute the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopHour&amp;lt;/tt&amp;gt; is the hour the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopMinute&amp;lt;/tt&amp;gt; is the minute the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityWeekly&amp;amp;UserCode=1&amp;amp;DayOfWeek=1367&amp;amp;StartHour=15&amp;amp;StartMinute=31&amp;amp;StopHour=16&amp;amp;StopMinute=42&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityWeekly&amp;amp;amp;UserCode=1&amp;amp;amp;DayOfWeek=1367&amp;amp;amp;StartHour=15&amp;amp;amp;StartMinute=31&amp;amp;amp;StopHour=16&amp;amp;amp;StopMinute=42&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DayOfWeek&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ClearPinValidity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Clears the given restriction slot.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;slotID&amp;lt;/tt&amp;gt; is the restriction slot number. The starting slot number is 1.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | slotID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ClearPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Removes the PIN code from slot &amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== HVAC_UserOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_UserOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_UserOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired operating mode of the HVAC. Currently MiOS supports only:&lt;br /&gt;
*Off&lt;br /&gt;
*HeatOn&lt;br /&gt;
*CoolOn&lt;br /&gt;
*AutoChangeOver&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual operating mode of the HVAC.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired energy mode. Can be &amp;lt;tt&amp;gt;Normal&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;EnergySavingsMode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual energy mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, and if 0, the thermostat doesn't support auto mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired HVAC operating mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetEnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired energy mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_OperatingState1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HVAC_OperatingState1&lt;br /&gt;
*'''File''': S_HVAC_OperatingState1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents what the HVAC is actually doing right now. The most common actions are:&lt;br /&gt;
*Idle&lt;br /&gt;
*Heating&lt;br /&gt;
*Cooling&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_FanOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_FanOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_FanOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The fan operation mode. Can be:&lt;br /&gt;
*Auto&lt;br /&gt;
*ContinuousOn&lt;br /&gt;
*PeriodicOn&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FanStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current fan state; can be ''On'' or ''Off''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the fan operating mode. Changes the Mode variable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TemperatureSetpoint1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSetpoint1&lt;br /&gt;
*'''File''': S_TemperatureSetpoint1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetpointTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllSetpoints&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma separated list containing the current setpoints for the following thermostat modes: heat, cool, auto.&lt;br /&gt;
Format: &amp;lt;code&amp;gt;HEAT,COOL,AUTO&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;AllSetpoints = 72,74,73&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*72 = heating setpoint&lt;br /&gt;
*74 = cooling setpoint&lt;br /&gt;
*73 = auto mode setpoint&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, the thermostat doesn't support auto setpoint, so set heat+cool this many degrees +/-&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReportMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | char&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;quot;M&amp;quot; = The report correspond to the current mode of operation and should update the setpoint in the received mode (default),&lt;br /&gt;
&amp;quot;S&amp;quot; = The report correspond to the current operating state and should update the setpoint in the current mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Range&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reject setpoint change commands whose setpoint is outside the specified range.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where each range has this format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,C&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;/F&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,F&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The range limits are inclusive, meaning the new setpoint must be &amp;gt;= X&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;lt;= X&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;14,34/58,92;16,44/60,112;-1,32/30,90&amp;lt;/code&amp;gt;&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt; = 14,34/58,92: this means that the '''auto''' setpoint must be between 14 and 34 if it's in Celsius, and between 58 and 92 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt; = 16,44/60,112: this means that the '''cool''' setpoint must be between 16 and 44 if it's in Celsius, and between 60 and 112 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt; = -1,32/30,90: this means that the '''heat''' setpoint must be between -1 and 32 if it's in Celsius, and between 30 and 90 if it's in Fahrenheit.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target setpoint.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TemperatureSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSensor1&lt;br /&gt;
*'''File''': S_TemperatureSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentTemperature&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GenericSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:GenericSensor1&lt;br /&gt;
*'''File''': S_GenericSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LightSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:LightSensor1&lt;br /&gt;
*'''File''': S_LightSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HumiditySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HumiditySensor1&lt;br /&gt;
*'''File''': S_HumiditySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SecuritySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SecuritySensor1&lt;br /&gt;
*'''File''': S_SecuritySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Tripped&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used by MiOS as a way to disable sending notifications when a sensor is tripped/untripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the UNIX time when the sensor last reported that it was tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreTripTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used to filter trip events, the value specify the time in seconds of the filter, internally it will record the last event and after the time has elapsed it will set the variable Tripped to the last known event recorded.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoUntrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used for those devices that doesn't send the Untrip command and requires to automatically untrip after certain time. The value correspond to the time in seconds that the controller will set the Tripped variable to 0 after a Trip event. To disable this feature, set the variable to 0 or remove it from the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetArmed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newArmedValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Arms or disarms the sensor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EnergyMetering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:EnergyMetering1&lt;br /&gt;
*'''File''': S_EnergyMetering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Watts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If the device can report its wattage, this is the value reported by the device, otherwise this is the value supplied by the user in &amp;lt;tt&amp;gt;UserSupliedWattage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Pulse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserSuppliedWattage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | See &amp;lt;tt&amp;gt;Watts&amp;lt;/tt&amp;gt;.&lt;br /&gt;
'''Note:''' For thermostats, &amp;lt;tt&amp;gt;UserSuppliedWattage&amp;lt;/tt&amp;gt; consists of 3 numbers separated by commas. The default is 1500,1500,300. The first number is how many watts are used when the thermostat is in 'heat' mode; the second is how many watts are used when the thermostat is in 'cool' mode; and the third number is for the 'fan only' mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | KWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Log&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of values:&lt;br /&gt;
&amp;lt;code&amp;gt;CurrentConsumption,Average,Peak,LastReading,Seconds&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*''LastReading'' is the Unix time.&lt;br /&gt;
*''Seconds'' is the period of time the ''Average'' value was computed for.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ResetKWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrTransmitter1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrTransmitter1&lt;br /&gt;
*'''File''': S_IrTransmitter1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SendProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sends the given IR code.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SerialPort1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-org:serviceId:SerialPort1&lt;br /&gt;
*'''File''': S_SerialPort1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | path&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the serial port. On Vera Lite it's &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | baud&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The baud rate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | stopbits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of stop bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | databits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of data bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | parity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Can be &amp;lt;tt&amp;gt;odd&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;even&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SceneController1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneController1&lt;br /&gt;
*'''File''': S_SceneController1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneActivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the activated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneDeactivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the deactivated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scenes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The scene ID (as reported by the scene controller) of the last activated or deactivated scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the scene was last activated or deactivated.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManageLeds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, automatically turn on/off the scene indicator lights.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumButtons&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;NumberOfButtons[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,etc.]]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*'''ButtonNumber''' must be from 1 to ''NumberOfButtons''.&lt;br /&gt;
*'''AssociationNumber''' is the association group.&lt;br /&gt;
*'''SceneNumber''' is an event ID, and it's sent instead of the one we program.&lt;br /&gt;
*'''ButtonName''' is the user friendly name of the button.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2,1-1-1=Tap Button,2-2-2=Hold Button&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ButtonMapping&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;OldButtonNumber-Attribute-NewButtonNumber[,OldButtonNumber-Attribute-NewButtonNumber[,etc.]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where '''Attribute''' has the following meaning:&lt;br /&gt;
&lt;br /&gt;
*0 = Key pressed&lt;br /&gt;
*1 = Key is released, sent only as a termination of a Key Held Down sequence&lt;br /&gt;
*2 = Key held down&lt;br /&gt;
*3 = Key double tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
*4 = Key triple tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; These attributes were added in COMMAND_CLASS_CENTRAL_SCENE V2, so it's not available on all the scene controllers.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1-0-1,1-3-2,2-0-3,2-3-4,3-0-5,3-3-6,4-0-7,4-3-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneShortcuts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FiresOffEvents&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ActivationMethod&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave stuff.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SceneControllerLED1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneControllerLED1&lt;br /&gt;
*'''File''': S_SceneControllerLED1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The lights' state. The lower 4 bits of &amp;lt;tt&amp;gt;LightSettings&amp;lt;/tt&amp;gt; are the 4 green LEDs, and the upper 4 are the 4 red LEDs. So, 10001 is an orange light, 110010 is an orange light and a red, etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SetLight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Change a light's state.&lt;br /&gt;
*&amp;lt;tt&amp;gt;newValue&amp;lt;/tt&amp;gt; is the new light state. The valid values are:&lt;br /&gt;
**0 = off&lt;br /&gt;
**1 = green&lt;br /&gt;
**2 = red&lt;br /&gt;
**3 = orange&lt;br /&gt;
*&amp;lt;tt&amp;gt;Indicator&amp;lt;/tt&amp;gt; is the button number.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicator&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrDevice1&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrDevice1&lt;br /&gt;
*'''File''': S_IrDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codesets&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | SendCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Button&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Repeat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Color1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Color1&lt;br /&gt;
*'''File''': S_Color1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Variable&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| CurrentColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| TargetColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ColorMode&lt;br /&gt;
| string&lt;br /&gt;
| Currently used only for Revogi.&lt;br /&gt;
Can have only 2 values:&lt;br /&gt;
*0 = Colorful mode&lt;br /&gt;
*1 = Color temperature mode&lt;br /&gt;
|-&lt;br /&gt;
| ColorChannelPriorities&lt;br /&gt;
| string&lt;br /&gt;
| Specify the color channel priorities like this:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;gt;1&amp;gt;2,3,4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That value can be interpretted like this: channel 0 has priority over channel 1, which has priority over channels 2, 3 and 4.&lt;br /&gt;
|-&lt;br /&gt;
| SupportedColors&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Device_Categories</id>
		<title>Luup Device Categories</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Device_Categories"/>
				<updated>2017-12-12T08:52:00Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
&lt;br /&gt;
Device categories and subcategories mapping.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category&lt;br /&gt;
! Device Type&lt;br /&gt;
! Subcategory&lt;br /&gt;
! Device Type&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Dimmable Light&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Bulb&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Plugged&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Switch&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Exterior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Refrigerator&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| Garage Door&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Valve&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Security Sensor&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Door Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Leak Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Motion Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Smoke Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| CO Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Glass Break Sensor&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | HVAC&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Heater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Custom HVAC&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Camera&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Indoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Outdoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Doorbell&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Door Lock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 8&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Window Covering&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Window Covering&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| ZRTSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 9&lt;br /&gt;
| Remote Control&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 10&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | IR Transmitter&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| IR Transmitter&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| USB UIRT&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 11&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Generic I/O&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Generic I/O&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Repeater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 12&lt;br /&gt;
| Generic Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 13&lt;br /&gt;
| Serial Port&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 14&lt;br /&gt;
| Scene Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 15&lt;br /&gt;
| A/V&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 16&lt;br /&gt;
| Humidity Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 17&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 18&lt;br /&gt;
| Light Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 19&lt;br /&gt;
| Z-Wave Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 20&lt;br /&gt;
| Insteon Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 21&lt;br /&gt;
| Power Meter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 22&lt;br /&gt;
| Alarm Panel&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 23&lt;br /&gt;
| Alarm Partition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 24&lt;br /&gt;
| Siren&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 25&lt;br /&gt;
| Weather&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 26&lt;br /&gt;
| Philips Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 27&lt;br /&gt;
| Appliance&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 28&lt;br /&gt;
| UV Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 29&lt;br /&gt;
| Mouse Trap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 30&lt;br /&gt;
| Doorbell&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 31&lt;br /&gt;
| Keypad&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions</id>
		<title>Luup UPnP Variables and Actions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions"/>
				<updated>2017-12-12T08:51:49Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
&lt;br /&gt;
This is a list of all the UPnP actions and variables used by MiOS.&lt;br /&gt;
&lt;br /&gt;
Some actions and variables have self-explanatory names, so there's a dash ('-') instead of the description.&lt;br /&gt;
&lt;br /&gt;
== HomeAutomationGateway1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HomeAutomationGateway1&lt;br /&gt;
*'''File''': S_HomeAutomationGateway1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataVersion&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A number that increases each time the data changes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Unique Device Name of the UPnP device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload the LuaUPnP engine.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ModifyUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | inUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Make changes to the UserData.&lt;br /&gt;
*&amp;lt;tt&amp;gt;inUserData&amp;lt;/tt&amp;gt; is the new UserData object which will be added to the UserData or will replace an existent UserData object.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DataFormat&amp;lt;/tt&amp;gt; must be ''json''.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is ''1'' the LuaUPnP engine will reload after the UserData is modified.&lt;br /&gt;
&lt;br /&gt;
For more information read the [[ModifyUserData]] page.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataFormat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Create or change the value of a variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; can be an UDN or a number.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Service&amp;lt;/tt&amp;gt; is the service ID of the variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Variable&amp;lt;/tt&amp;gt; is the variable name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Value&amp;lt;/tt&amp;gt; is the new variable value.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Service&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Variable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | RunScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Run the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SceneOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Turn off all the devices from DEVICE_CATEGORY_DIMMABLE_LIGHT and DEVICE_CATEGORY_SWITCH from the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | RunLua&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Run the given Lua code. If &amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; is specified, the code is run using that device's interface.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Code&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | CreateDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | deviceType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | Create a device using the given parameters.&lt;br /&gt;
*&amp;lt;tt&amp;gt;deviceType&amp;lt;/tt&amp;gt; is the UPnP device type.&lt;br /&gt;
*&amp;lt;tt&amp;gt;internalID&amp;lt;/tt&amp;gt; is the specific ID (also known as ''altid'') of the device; for example, for Z-Wave devices this is the Node ID, and for Insteon device it is the Insteon ID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Description&amp;lt;/tt&amp;gt; is the device name, which is shown to the user on the dashboard.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpDevFilename&amp;lt;/tt&amp;gt; is the UPnP device description file name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpImplFilename&amp;lt;/tt&amp;gt; is the implementation file to use.&lt;br /&gt;
*If the device is IP based, &amp;lt;tt&amp;gt;IpAddress&amp;lt;/tt&amp;gt; is the IP address and port of the device.&lt;br /&gt;
*If this should be the child of another device, &amp;lt;tt&amp;gt;DeviceNumParent&amp;lt;/tt&amp;gt; is the device number of the parent device.&lt;br /&gt;
*&amp;lt;tt&amp;gt;RoomNum&amp;lt;/tt&amp;gt; is the number of the room the device will be in.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; tells the device which plugin to use. The plugin will be installed automatically if it's not already installed.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; is a string containing the variables you want set when the device is created. You can specify multiple variables by separating them with a line feed ('\n'), and use ',' and '=' to separate service, variable and value, like this: &amp;lt;tt&amp;gt;service,variable=value\nservice,variable=value\n&amp;lt;/tt&amp;gt;...&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is '''1''', the Luup engine will be restarted after the device is created.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | internalID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpDevFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpImplFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Username&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Password&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNumParent&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | DeleteDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Delete the device given either through its number, or through its UDN.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | CreatePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Create a plugin with the &amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; number and &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; version. &amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; are the variables that will be set when the device is created. For more information look at the description of the '''CreateDevice''' action above.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Version&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DeletePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Uninstall the given plugin.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | CreatePluginDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Creates a device for plugin #&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ImportUpnpDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | LogIpRequest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetHouseMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Changes the house mode.&lt;br /&gt;
&amp;lt;tt&amp;gt;Mode&amp;lt;/tt&amp;gt; can be:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = Home&lt;br /&gt;
*&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = Away&lt;br /&gt;
*&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = Night&lt;br /&gt;
*&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = Vacation&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HaDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HaDevice1&lt;br /&gt;
*'''File''': S_HaDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CommFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is set to ''1'' if we've lost communication with the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The configuration state of the device:&lt;br /&gt;
*-3 = Configuration failed&lt;br /&gt;
*-2 = Configuration in progress&lt;br /&gt;
*-1 = Device waiting to be configured&lt;br /&gt;
*0 = Device not configured&lt;br /&gt;
*1 = Device successfully configured&lt;br /&gt;
*2 = Device partially configured&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoConfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically check the routing info for this every 12 hours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The battery level reported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the &amp;lt;tt&amp;gt;BatteryLevel&amp;lt;/tt&amp;gt; was reported.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeCheck&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Only for devices that are capable of implementing time, this is when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeOffset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | For &amp;lt;tt&amp;gt;LastTimeCheck&amp;lt;/tt&amp;gt;, this is the timezone offset from UTC when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device information was last updated. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FirstConfigured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device was first configured. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreRoom&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used only by the MiOS scene controller. Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Commands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of &amp;lt;tt&amp;gt;ControlCodes&amp;lt;/tt&amp;gt; for the enabled UI controls. If the &amp;lt;tt&amp;gt;ControlCode&amp;lt;/tt&amp;gt; of an UI control (e.g. button) is not in this list, the button will be disabled (greyed out). If this variable is missing, all controls will be enabled. If this variable is empty, all controls will be disabled.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IODevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The device number to connect to for IO. (this is on the master device)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IOPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The port to receive connections on from &amp;lt;tt&amp;gt;IODevice&amp;lt;/tt&amp;gt;. (this is on the serial port)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReverseOnOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, the commands for some devices are reversed (e.g. the On command will turn the device Off, and vice versa). Not all devices support this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_Alarm&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Currently used only by the water leak sensor, contains the alarm code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeSetting&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains the state of the device for each house mode.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;&amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;...&lt;br /&gt;
&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is empty, the sensor is disarmed/bypassed.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is &amp;quot;A&amp;quot;, the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1:;2:A;3:A;4:A&lt;br /&gt;
&lt;br /&gt;
*In &amp;lt;tt&amp;gt;Home&amp;lt;/tt&amp;gt;(1) mode the sensor is disarmed;&lt;br /&gt;
*in &amp;lt;tt&amp;gt;Away&amp;lt;/tt&amp;gt;(2), &amp;lt;tt&amp;gt;Night&amp;lt;/tt&amp;gt;(3) and &amp;lt;tt&amp;gt;Vacation&amp;lt;/tt&amp;gt;(4) modes the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Children&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of KitDevice numbers.&lt;br /&gt;
LuaUPnP will create a child device for every item in the list, with the specified KitDevice properties.&lt;br /&gt;
&lt;br /&gt;
Can be used to add children to devices which don't have MultiChannel support.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the polls are doing, where 5.0 means that the last 50 polls were successful and 0.0 means that all the last 50 polls were unsuccessful.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the wakeups are being received, where 5.0 means that the we received the last 50 wakeups when they have suppose to be sent and 0.0 means that we didn't receive any of the 50 last wakeups that the device should have sent&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''See the description of this variable in ZWaveDevice1 section, because it should belong to the service urn:micasaverde-com:serviceId:ZWaveDevice1, but it was kept in urn:micasaverde-com:serviceId:HaDevice1 to maintain backward compatibility.'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeConfiguration&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Implementation of custom preset modes for any device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;[&amp;amp;#124;&amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;upnp_action&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;service&amp;amp;gt;/&amp;amp;lt;action&amp;amp;gt;/&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;[&amp;amp;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the value is '?', it means that it's a wildcard and the ''ModeSettings'' variable should contain a comma separated list of values in order to substitute this '?' wildcard. If the value is not '?', then the value is fixed and it should be URL encoded.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 h;h code;urn:upnp-org:serviceId:SwitchPower1/SetTarget/newTargetValue=?&amp;amp;otherParameter=45&amp;amp;another=?&amp;amp;#124;s;s code;urn:upnp-org:serviceId:Dimming1/SetTargetLevel/newLevel=34&amp;amp;other=?&amp;amp;another=4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeControls&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used to tell the UI what controls to show in the House modes configuration page for the actions in the ''CustomModeConfiguration'' variable.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;;&amp;lt;control info for arg #2&amp;gt;;..;&amp;lt;control info for arg #N&amp;gt;[&amp;amp;#124;&amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | StressTest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stress test the Z-Wave device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove the device from the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ToggleState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Toggle the state of the device (e.g. if the device it's Off, turns it On). The device must have a binary state (On/Off, Locked/Unlocked, etc.).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ZWaveDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveDevice1&lt;br /&gt;
*'''File''': S_ZWaveDevice1.xml ''(nonexistent)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the polling frequency for a node (i.e. the minimum number of seconds between two poll commands to the same node). If this variable doesn't exist or is blank, the default polling frequency set in the &amp;lt;tt&amp;gt;ZWaveNetwork1&amp;lt;/tt&amp;gt;'s &amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt; variable will be used. If it's '''0''', polling will be disabled for this node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollCommands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of command classes/commands to poll. '&amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt;' means the device won't respond to any poll.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChEndpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Neighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbor devices' node IDs. '1' is the Vera's node ID.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NeighborsInverse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbors that see us.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Capabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The first 6 numbers in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are what is reported by the &amp;lt;tt&amp;gt;ZW_GetNodeProtocolInfo&amp;lt;/tt&amp;gt; function: Capability, Security, Reserved, Basic Device Class [, Generic Device Class, Specific Device Class]. If the &amp;lt;tt&amp;gt;Capability&amp;lt;/tt&amp;gt; is &amp;gt;= 128, then the device listens for commands, otherwise it's a battery operated device that only wakes up occasionally. After the '&amp;amp;#124;' in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are the command classes supported. More information here: [[ZWave Command Classes]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SecurityFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't talk to this node with security even if the node reports it can.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastReset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When we last reset the node association. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How often this battery operated device should wake up to report its status. The default value is 1800 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredWakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The wakeup interval already configured on the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastWakeup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device last woke up and reported its status. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastRouteUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device's routing information was last checked/updated. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Health&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A rating from 0-5. A large number means that MiOS can communicate with it easily.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HealthDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The date the rating was assigned. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings read from the device.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number,variable1_value,variable2_number,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings set by the user.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number-variable1_description,variable1_data_type,variable1_value,variable2_number-variable2_description,variable2_data_type,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This are the association settings read from the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave associations for a device are stored in this variable.&lt;br /&gt;
The associations are delimited by ';', 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 IDs, not device IDs (ie the 'altid' in the UI). If the node ID is 'z', it means the node ID of the device for which the variable is set.&lt;br /&gt;
&lt;br /&gt;
For multi-channel there is a '.' following the node ID with the endpoint ID.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1,3.4,7;2,5.1,8&lt;br /&gt;
&lt;br /&gt;
Means group #1 is associated with node #3 endpoint #4 and with node #7, which is non-multi-channel; group #2 is associated with node #5 endpoint #1, and with node #8.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of association groups supported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NonceACK&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManufacturerInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device information. Format:&lt;br /&gt;
 ManufacturerID,ProductType,ProductID&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is what's reported by the COMMAND_CLASS_VERSION command VERSION_REPORT. There are 5 values: Z-Wave Library Type, Z-Wave Protocol Version, Z-Wave Protocol Sub Version, Application Version, Application Sub Version. The &amp;lt;tt&amp;gt;Application Version&amp;lt;/tt&amp;gt; is specific to the device and not defined by Z-Wave.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetPointInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of the supported setpoint types:&lt;br /&gt;
*&amp;lt;tt&amp;gt;H1&amp;lt;/tt&amp;gt; = Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C1&amp;lt;/tt&amp;gt; = Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;F1&amp;lt;/tt&amp;gt; = Furnace&lt;br /&gt;
*&amp;lt;tt&amp;gt;D1&amp;lt;/tt&amp;gt; = Dry Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;MA&amp;lt;/tt&amp;gt; = Moist Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;AC&amp;lt;/tt&amp;gt; = Auto changeover&lt;br /&gt;
*&amp;lt;tt&amp;gt;H2&amp;lt;/tt&amp;gt; = Energy Save Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C2&amp;lt;/tt&amp;gt; = Energy Save Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;AH&amp;lt;/tt&amp;gt; = Away Heating&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of the command classes supported by this device. (hexadecimal numbers)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InitialName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The name that was initially set when the node was first added.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified name when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;VariablesSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredAssoc&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;AssociationSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Documentation&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL of the documentation used on the ''Device Options'' page.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The meter type:&lt;br /&gt;
*1 = electric&lt;br /&gt;
*2 = gas&lt;br /&gt;
*3 = water&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A bit map of the supported meter scales.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | List of the supported alarm types.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollOk, PollTxFail, PollNoReply&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | These variables are incremented each time the last poll job has the status they describe. They are reset after each network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A route specified by the end-user. This is a '''dot'''-separated list of nodes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllRoutesFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when all the manual routes have failed.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This contains a list of various routes chosen by profilings.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 route1_node1.route1_node2...-route1_score[x],route2_node1.route2_node2...-route2_score[x],...&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;score&amp;lt;/tt&amp;gt; is a measure of latency and accuracy, the lower the number, the better. '&amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;' means that the last attempt to use this route failed, so it won't be used anymore.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreDirectScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SwitchMlSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BasicSetCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining actions for BASIC_SET messages.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Value&amp;gt;=&amp;lt;Action&amp;gt;&amp;lt;Endpoint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*Value &amp;amp;nbsp;: the BASIC_SET Value; if Value is &amp;quot;XX&amp;quot;, it means any value&lt;br /&gt;
*Action &amp;amp;nbsp;: the Action to perform; the supported values are: T&amp;lt;tt&amp;gt;=Trip&amp;lt;/tt&amp;gt;, U&amp;lt;tt&amp;gt;=Untrip&amp;lt;/tt&amp;gt;, O&amp;lt;tt&amp;gt;=On&amp;lt;/tt&amp;gt;, F&amp;lt;tt&amp;gt;=Off&amp;lt;/tt&amp;gt;, D&amp;lt;tt&amp;gt;=Dim&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Endpoint &amp;amp;nbsp;: the Endpoint device ID (altid); if Endpoint=0, it means the parent node, or the current node if the device has no children&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=Ue1,FF=Te1&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Untrip endpoint &amp;quot;e1&amp;quot;; if receive 0xFF, Trip endpoint &amp;quot;e1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;XX=D02&amp;lt;/code&amp;gt; =&amp;gt; Dim endpoint 02 to whatever value received&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=T0,FF=U0&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Trip the current node; if receive 0xFF, Untrip the current node&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SupportedMRTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining which meter report types are supported by the device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;;&amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*CC Hex &amp;amp;nbsp;: the Hex value of the command class (without 0x):&lt;br /&gt;
**0x31 for COMMAND_CLASS_SENSOR_MULTILEVEL&lt;br /&gt;
**0x32 for COMMAND_CLASS_METER&lt;br /&gt;
*Supported Type &amp;amp;nbsp;: The HEX value of the type supported for the Command class without 0x&lt;br /&gt;
**Supported types for COMMAND_CLASS_SENSOR_MULTILEVEL:&lt;br /&gt;
***Temperature = 0x01&lt;br /&gt;
***General = 0x02&lt;br /&gt;
***Luminance = 0x03&lt;br /&gt;
***Power = 0x04&lt;br /&gt;
***RelativeHumidity = 0x05&lt;br /&gt;
***Velocity = 0x06&lt;br /&gt;
***Direction = 0x07&lt;br /&gt;
***AtmosphericPressure = 0x08&lt;br /&gt;
***BarometricPressure = 0x09&lt;br /&gt;
***SolarRadiation = 0x0A&lt;br /&gt;
***DewPoint = 0x0B&lt;br /&gt;
***RainRate = 0x0C&lt;br /&gt;
***TideLevel = 0x0D&lt;br /&gt;
***Weight = 0x0E&lt;br /&gt;
***Voltage = 0x0F&lt;br /&gt;
***Current = 0x10&lt;br /&gt;
***CO2level = 0x11&lt;br /&gt;
***AirFlow = 0x12&lt;br /&gt;
***TankCapacity = 0x13&lt;br /&gt;
***Distance = 0x14&lt;br /&gt;
***SeismicIntensity = 0x19&lt;br /&gt;
***UltraViolet = 0x1B&lt;br /&gt;
&lt;br /&gt;
**Supported types for COMMAND_CLASS_METER:&lt;br /&gt;
***Electric=0x01&lt;br /&gt;
***Gas=0x02&lt;br /&gt;
***Water=0x03&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;31-0F,0E,10,1B;32-01,03&amp;lt;/code&amp;gt; =&amp;gt; Device supports Voltage, Weight, Current and UltraViolet for COMMAND_CLASS_SENSOR_MULTILEVEL and Electric and Water from COMMAND_CLASS_METER&lt;br /&gt;
&lt;br /&gt;
If the variable is empty it will be treated as support anything. If the variable does not contain a command class that command class will be treated as support everything.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NoChildren&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this variable is '''1''', delete the child devices, and don't allow the creation of other child devices, to avoid creating ghost devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''(NOTE: this is its new service. ''urn:micasaverde-com:serviceId:HaDevice1'' was left unchanged to mantain backward compatibility.)'''&lt;br /&gt;
Allows setting what each Alarm Type does for devices using COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION. The format is:&lt;br /&gt;
&lt;br /&gt;
 AlarmTypes:AlarmLevels:AlarmCode:Action;AlarmTypes:AlarmLevels:AlarmCode:Action&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmTypes&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;type1,type2-type3,!type4&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmLevels&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;00,01,05-20,!FF&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;SMOKE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAMPER_ALARM&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Action&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = don't update the ''Tripped'' variable, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = update the ''Tripped'' variable, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = ignore the message (i.e. don't update the ''sl_Alarm'' variable)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 01:FF:SMOKE:1;0C:FF::1;0D:FF:TAMPER_ALARM:0&lt;br /&gt;
&lt;br /&gt;
*if Alarm Type is ''0x01'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;SMOKE&amp;quot; and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0C'' and the Alarm Level is ''0xFF'', don't update the ''sl_Alarm'' variable, and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0D'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;TAMPER_ALARM&amp;quot;, but don't trip the sensor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypesV2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows customizing the handling of the COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION &amp;gt;= v2 messages.&lt;br /&gt;
The format is a ';' separated list of tokens. Format of each token:&lt;br /&gt;
&lt;br /&gt;
 TypesV1:LevelV1:NotificationStatus:NotificationType:Event:AlarmCode:TripValue&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;TypesV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1_v1,type2_v1-type3_v1,!type4_v1, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;LevelV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,02-05,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationStatus&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 01-FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationType&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1,type2-type3,!type4, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Event&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,03-5A,!04,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: SMOKE, CO, TAMPER_ALARM, etc. Leave empty if you don't want to set an alarm code.&lt;br /&gt;
*&amp;lt;tt&amp;gt;TripValue&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 0 = Untrip, 1 = Trip, C = don't update the Tripped variable (only the Alarm Code), X = Ignore&lt;br /&gt;
&lt;br /&gt;
If the TypeV1 or NotificationType are not XX and if there was no match, the function will try the next token.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGroups&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, associate ourselves only with these groups, not all groups. The groups should be given as a comma separated list, like this:&lt;br /&gt;
 1,3,4,255&lt;br /&gt;
&lt;br /&gt;
You could add this variable with a value = 0 if you want to be in NO association groups.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreCommandClass&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows ignoring specific command classes (CC) for that device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC #1&amp;gt;-&amp;lt;Command #1&amp;gt;,&amp;lt;Command #2&amp;gt;;&amp;lt;CC #2&amp;gt;-*;&amp;lt;CC #3&amp;gt;-&amp;lt;Command #1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Both the command classes and the commands are given by their hex code.&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; is used as an wild card indicating all commands.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 26-03,05;71-*;20-03&lt;br /&gt;
&lt;br /&gt;
That means: ignore CC 26 commands 03 and 05, all commands from CC 71, and CC 20 command 03.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TemperatureScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the thermostat setpoint.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;Precision,Scale,Size&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*Precision: The number of decimals&lt;br /&gt;
*Scale: 0 = Celsius, 1 = Fahrenheit&lt;br /&gt;
*Size: Size of the setpoint in bits: number of bits = 2&amp;lt;sup&amp;gt;2+''Size''&amp;lt;/sup&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Size || Number of bits&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 16&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 32&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ZWaveNetwork1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveNetwork1&lt;br /&gt;
*'''File''': S_ZWaveNetwork1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The status of the Z-Wave network:&lt;br /&gt;
*0 = Status not set&lt;br /&gt;
*1 = OK&lt;br /&gt;
*2 = Quiting&lt;br /&gt;
*3 = Waiting to quit&lt;br /&gt;
*4 = No dongle&lt;br /&gt;
*5 = Configuring: still running init/configure scripts&lt;br /&gt;
*6 = Failure&lt;br /&gt;
*7 = Initializing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusText&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Full Z-Wave network status description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastError&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The last Z-Wave error in the network&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the Z-Wave component of the LuaUPnP engine started.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastDongleBackup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave dongle backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastHeal&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Z-Wave version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The unique ID of the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Role&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave specific stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TO3066&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the port where MiOS will search for the Z-Wave dongle. On Vera Lite, this is &amp;lt;tt&amp;gt;/dev/ttyS0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LockComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't search for the Z-Wave dongle on the other available ports if it doesn't find it on &amp;lt;tt&amp;gt;ComPort&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Use45&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use Z-Wave version 3.20 instead of 2.78.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UseMR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use MiOS routing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LimitNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | With MiOS routing: if this is &amp;quot;1&amp;quot;, when the routing table is created, consider only Z-Wave's neighbors as valid options.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically poll the Z-Wave devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds after the LuaUPnP engine has (re-)started before the polling loop begins.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds MiOS must not have transmitted any non-poll command before the next poll command is sent.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds between poll commands.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Minimum number of seconds between poll commands to the same node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneIDs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used for scene controllers. This is a CSV where each item has this format: &amp;lt;tt&amp;gt;node#-button#=ZWaveSceneID&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ResetNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ResetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Reset the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ResetMode&amp;lt;/tt&amp;gt; can be &amp;quot;SIS&amp;quot; or &amp;quot;SUC&amp;quot;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;HomeID&amp;lt;/tt&amp;gt; is a 32 bit hex number representing the new HomeID. If this parameter doesn't exist or is 0, MiOS will generate the new HomeID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ZeroMemory&amp;lt;/tt&amp;gt;: if this is &amp;quot;1&amp;quot;, the memory will be zeroed before resetting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ZeroMemory&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | PutByte&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Used to convert Z-Wave from 2.78 to 3.20 in which case the &amp;lt;tt&amp;gt;StartAddress&amp;lt;/tt&amp;gt; parameter must be &amp;quot;convert502_452&amp;quot; and the rest are ignored.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ReconfigureAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FailedOnly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the Z-Wave nodes. If &amp;lt;tt&amp;gt;FailedOnly&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, only the devices that failed to configure are reconfigured.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Get network update from SUC/SIS.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Update the neighbor nodes of the given device. &amp;lt;tt&amp;gt;Device&amp;lt;/tt&amp;gt; is the device number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | BackupDongle&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Restore&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Backs up the Z-Wave network. The backup is in &amp;lt;tt&amp;gt;/etc/cmh/dongle.dump&amp;lt;/tt&amp;gt;. If &amp;lt;tt&amp;gt;Restore&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, the Z-Wave network is restored from the backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | PollAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | RemoveNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | Puts Vera in exclude mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the exclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be excluded. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in exclude mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit exclude mode after a node is excluded.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits exclude mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | AddNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Puts Vera in include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the inclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be included. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in include mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit include mode after a node is included.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ControllerShift&amp;lt;/tt&amp;gt; must be &amp;quot;0&amp;quot;.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PK_KitDevice&amp;lt;/tt&amp;gt; is the KitDevice number of the device we expect to be included.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ControllerShift&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PK_KitDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DownloadNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Copy the Z-Wave network from a master controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | HealNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryMinutes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Heals/consolidates the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt;: how many minutes to wait for battery operated devices to be discovered.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Node&amp;lt;/tt&amp;gt; is not blank, then only this node will be repaired.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt; is the number of cycles to stress test each node.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Configure&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then all the devices will be re-configured when done.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;ManualRoute&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then only update MiOS routing (overrides other settings).&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt; is the starting heal stage. The valid values are:&lt;br /&gt;
**1 = Request network update.&lt;br /&gt;
**2 = Request neighbor node update.&lt;br /&gt;
**3 = Update the routing tables and neighbor nodes.&lt;br /&gt;
**4 = Calculate the best routes.&lt;br /&gt;
**5 = Re-configure all nodes.&lt;br /&gt;
**6 = Wait &amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt; to request neighbor node update and configure all battery operated nodes.&lt;br /&gt;
**7 = Do a stress test for &amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopStage&amp;lt;/tt&amp;gt;: Same as &amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StressCycles&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | SetPolling&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IsTemporary&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | Set the polling parameters.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;IsTemporary&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then these polling settings will be lost when the LuaUPnP engine is reloaded.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollingEnabled&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayInitial&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayDeadTime&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollMinDelay&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SendData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Sends the Z-Wave &amp;lt;code&amp;gt;Data&amp;lt;/code&amp;gt; to the Z-Wave &amp;lt;code&amp;gt;Node&amp;lt;/code&amp;gt;.&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
1. Set parameter 29 to &amp;quot;3&amp;quot; on node 15:&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=15&amp;amp;Data=x70%204%2029%201%203&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=15, Data=&amp;quot;x70 4 29 1 3&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Turn on a light (node 7):&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=7&amp;amp;Data=x20%201%20xFF&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=7, Data=&amp;quot;x20 1 xFF&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SimulateIncomingData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Calls the Z-Wave message handler for the given data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USBUIRT1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:USBUIRT1&lt;br /&gt;
*'''File''': S_USBUIRT.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the USB port the UIRT is connected to. On Vera Lite this is &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Camera1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Camera1&lt;br /&gt;
*'''File''': S_Camera1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VideoURLs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable defines the streaming parameters, and without it streaming doesn't work. This variable has this structure:&lt;br /&gt;
&amp;lt;tt&amp;gt;Info1:URL1:Info2:URL2:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt; parameters are:&lt;br /&gt;
&lt;br /&gt;
1. The protocol: can be &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. HTTP authentication required: 1 = yes, send the username and password in the request, 0 = no, don't send the username and password&lt;br /&gt;
&lt;br /&gt;
3. Video codec: &amp;lt;tt&amp;gt;mpeg4&amp;lt;/tt&amp;gt; &amp;amp;#124; &amp;lt;tt&amp;gt;mjpeg&amp;lt;/tt&amp;gt; &amp;amp;#124; etc.&lt;br /&gt;
&lt;br /&gt;
4. Audio codec: blank = no audio&lt;br /&gt;
&lt;br /&gt;
5. Resolution: &amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt; = thumbnail, &amp;lt;tt&amp;gt;s&amp;lt;/tt&amp;gt; = small, &amp;lt;tt&amp;gt;m&amp;lt;/tt&amp;gt; = medium, &amp;lt;tt&amp;gt;l&amp;lt;/tt&amp;gt; = large&lt;br /&gt;
&lt;br /&gt;
6. Width: 640&lt;br /&gt;
&lt;br /&gt;
7. Height: 480&lt;br /&gt;
&lt;br /&gt;
8. Players: &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;, a string of characters indicating known good players. &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt; = Quicktime plugin, &amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt; = Android, &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; = iPhone, &amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt; = normal web browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; is the streaming URL compatible with the players specified in &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Currently only the &amp;lt;tt&amp;gt;protocol&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;HTTP auth&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;players&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; parameters are used. The rest of the parameters are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;VideoURLs&amp;lt;/tt&amp;gt; example for VistaCam:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;rtsp,0,mpeg4,,m,640,480,qai:img/media.sav:http,0,mjpeg,,m,640,480,w:img/video.mjpeg:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the URL to get a snapshot from the camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RingBuffer&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable contains the ring buffer parameters.&lt;br /&gt;
The format is: &amp;lt;code&amp;gt;Enabled,BufferSeconds,NumFramesToPurge,Format,URL&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt; can be '''0''' or '''1'''. If it's '''1''', the ring buffer is enabled.&lt;br /&gt;
*&amp;lt;code&amp;gt;BufferSeconds&amp;lt;/code&amp;gt;: how many seconds of video to keep in the buffer. This is limited by the available memory on Vera. Setting this to a large value will cause instability.&lt;br /&gt;
*&amp;lt;code&amp;gt;NumFramesToPurge&amp;lt;/code&amp;gt;: how many frames to wait before attempting to purge.&lt;br /&gt;
*&amp;lt;code&amp;gt;Format&amp;lt;/code&amp;gt; can be '''2'''=MJPEG, '''3'''=MP4.&lt;br /&gt;
*&amp;lt;code&amp;gt;URL&amp;lt;/code&amp;gt; is the streaming URL.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedSensors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: archive a photo whenever one of the sensors is tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SensorArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many seconds to archive the video after the sensor(s) are tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedLights&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: which lights should be turned on when viewing this camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightOptions&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When to turn on the lights:&lt;br /&gt;
*&amp;lt;tt&amp;gt;V&amp;lt;/tt&amp;gt;: when I view the camera from the web or phone;&lt;br /&gt;
*&amp;lt;tt&amp;gt;S&amp;lt;/tt&amp;gt;: when the sensor(s) above are tripped and they are armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;: when the sensors above are tripped and they are *not* armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;: when you take an automatic picture for the archive;&lt;br /&gt;
&lt;br /&gt;
So &amp;lt;tt&amp;gt;VSBA&amp;lt;/tt&amp;gt; means do them all.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Archives a picture from the camera every this number of seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchivePreserveDays&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many days to keep the pictures in the archive.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Streams&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains a list separated by semicolons, where each element in the list has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;stream type&amp;amp;gt;,&amp;amp;lt;protocol&amp;amp;gt;,&amp;amp;lt;url&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The ''stream types'' currently supported are: &amp;lt;tt&amp;gt;flv&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;flv_low&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp_low&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The types with the &amp;quot;_low&amp;quot; suffix are the low bandwidth versions, and are used when streaming through the relay servers.&lt;br /&gt;
&lt;br /&gt;
*The supported ''protocols'' are: &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;flv,http,/img/media.flv;rtsp,rtsp,/img/media.sav;flv_low,http,/img/media.flv?stream=2;rtsp_low,rtsp,/img/media.sav?stream=2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PanTiltZoom1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:PanTiltZoom1&lt;br /&gt;
*'''File''': S_PanTiltZoom1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveLeft&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveRight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveUp&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveDown&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomIn&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomOut&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | GoToPreset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | presetNumber&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Moves the camera to the given preset.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SwitchPower1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:SwitchPower1&lt;br /&gt;
*'''File''': S_SwitchPower1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target state of the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The current state of the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target state of the device. Used to turn a device On or Off.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WindowCovering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:WindowCovering1&lt;br /&gt;
*'''File''': S_WindowCovering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Up&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Down&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stop&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dimming1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:Dimming1&lt;br /&gt;
*'''File''': S_Dimming1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target dimming value; it doesn't represent the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TurnOnBeforeDim&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicates that this device needs to turn on before setting the dimming level.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowZeroLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This device allows to set 0% level in ON state.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetLoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newLoadlevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired dimming level. Used to adjust the dimming level of a device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DoorLock1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:DoorLock1&lt;br /&gt;
*'''File''': S_DoorLock1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the target (desired) door state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current door state. &amp;quot;1&amp;quot; = locked, &amp;quot;0&amp;quot; = unlocked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of PIN codes.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=2&amp;gt;user_code_id,active,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=3&amp;gt;next_available_user_code_id\t&lt;br /&gt;
 user_code_id,active,date_added,date_used,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;VERSION&amp;lt;/tt&amp;gt; is used to track syntax changes.&lt;br /&gt;
*&amp;lt;tt&amp;gt;active&amp;lt;/tt&amp;gt; can be one of the following values:&lt;br /&gt;
**&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; = The code isn't programmed.&lt;br /&gt;
**&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''doesn't''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''does''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = The code is programmed into the lock and will be removed by software later.&lt;br /&gt;
**&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = The code is not programmed into the lock, but it will be programmed later by the software.&lt;br /&gt;
**&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt; = The code is programmed into the lock which supports hardware-based scheduling and will enable/disable it automatically.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid&amp;lt;/tt&amp;gt; is an auto-incrementing number.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid_lock&amp;lt;/tt&amp;gt; is the ID in the lock.&lt;br /&gt;
*The restriction type: '''&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;''' (''weekly'') or '''&amp;lt;tt&amp;gt;d&amp;lt;/tt&amp;gt;''' (''daily repeating'') = day of week based, '''&amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt;''' = time based (''yearly'')&lt;br /&gt;
*&amp;lt;tt&amp;gt;[d&amp;amp;#124;s]&amp;lt;/tt&amp;gt;: internal stuff.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumSchedules&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Maximum number of restrictions supported by the door lock.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 max_weekly,max_yearly,max_daily_repeating&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_weekly&amp;lt;/tt&amp;gt; is the number of weekly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_yearly&amp;lt;/tt&amp;gt; is the number of yearly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_daily_repeating&amp;lt;/tt&amp;gt; is the number of daily repeating restrictions slots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MinPinSize ''and'' MaxPinSize&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The minimum and maximum number of digits of the PIN code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowedPinChars&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Which characters are allowed in a PIN code.&lt;br /&gt;
The only format which is currently supported is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;-D&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
* D&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; is the smallest digit allowed;&lt;br /&gt;
* D&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; is the largest digit allowed.&lt;br /&gt;
Example: &amp;lt;code&amp;gt;2-7&amp;lt;/code&amp;gt; : allow only digits &amp;gt;= 2 and &amp;lt;= 7.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the last used PIN code:&lt;br /&gt;
 UserID=&amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot; UserName=&amp;quot;&amp;lt;pin_code_name&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_PinFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This becomes &amp;quot;1&amp;quot; when a bad PIN code is entered.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_CodeChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockButton&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the Lock button has been pressed on the lock keypad.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the lock fails to operate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UnauthUser&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the user code was entered outside of a valid date.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_VeryLowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is very low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UsesPinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;0&amp;quot;, this door lock doesn't use PIN codes. (e.g. Danalock)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target (desired) state of the door. Used to lock and unlock the door.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCodeName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Adds a PIN code. This code will be added to the &amp;lt;code&amp;gt;PinCodes&amp;lt;/code&amp;gt; variable and to the door lock.&lt;br /&gt;
*&amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; is the PIN code name.&lt;br /&gt;
*&amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; is the new PIN code.&lt;br /&gt;
*&amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; is the PIN code slot number.&lt;br /&gt;
*&amp;lt;code&amp;gt;purge&amp;lt;/code&amp;gt;: if this is '''&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;''', all the schedules programmed into the door lock will be removed.&lt;br /&gt;
*&amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is a json that looks like this:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;user_code&amp;quot;&amp;amp;nbsp;: {&lt;br /&gt;
      &amp;quot;slot&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot;,        // Used when adding/updating a PIN code.&lt;br /&gt;
      &amp;quot;name&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;name&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;code&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_code&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;user&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;restriction_slot&amp;gt;&amp;quot; // Used when adding/updating restrictions.&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;weekly_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;136&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;12:34&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;23:45&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;25&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;13:46&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;21:09&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;daily_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
**''&amp;lt;tt&amp;gt;slot&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;If the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; parameter is present, &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; The parameters from &amp;lt;code&amp;gt;SetPinValidityDate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SetPinValidityWeekly&amp;lt;/code&amp;gt; are also accepted. Internally, this action calls the implementation functions of those actions if &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;, respectively &amp;lt;code&amp;gt;DayOfWeek&amp;lt;/code&amp;gt; parameters are given. The parameters in the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; take precedence over the other parameters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | user&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | purge&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | json&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityDate&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityWeekly&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetPinValidityDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Sets the daily time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartDate&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;StopDate&amp;lt;/tt&amp;gt; are strings representing the dates, formatted like this: &amp;lt;tt&amp;gt;YYYY-MM-DD HH:MM:SS&amp;lt;/tt&amp;gt; (SQL DATETIME)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityDate&amp;amp;UserCode=1&amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityDate&amp;amp;amp;UserCode=1&amp;amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPinValidityWeekly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Sets the weekly time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DayOfWeek&amp;lt;/tt&amp;gt; contains the days of week numbers when the PIN code is restricted. Monday is '&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;' and Sunday is '&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;'.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;tt&amp;gt;1367&amp;lt;/tt&amp;gt; means Monday, Wednesday, Saturday and Sunday.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartHour&amp;lt;/tt&amp;gt; is the hour the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartMinute&amp;lt;/tt&amp;gt; is the minute the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopHour&amp;lt;/tt&amp;gt; is the hour the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopMinute&amp;lt;/tt&amp;gt; is the minute the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityWeekly&amp;amp;UserCode=1&amp;amp;DayOfWeek=1367&amp;amp;StartHour=15&amp;amp;StartMinute=31&amp;amp;StopHour=16&amp;amp;StopMinute=42&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityWeekly&amp;amp;amp;UserCode=1&amp;amp;amp;DayOfWeek=1367&amp;amp;amp;StartHour=15&amp;amp;amp;StartMinute=31&amp;amp;amp;StopHour=16&amp;amp;amp;StopMinute=42&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DayOfWeek&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ClearPinValidity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Clears the given restriction slot.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;slotID&amp;lt;/tt&amp;gt; is the restriction slot number. The starting slot number is 1.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | slotID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ClearPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Removes the PIN code from slot &amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== HVAC_UserOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_UserOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_UserOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired operating mode of the HVAC. Currently MiOS supports only:&lt;br /&gt;
*Off&lt;br /&gt;
*HeatOn&lt;br /&gt;
*CoolOn&lt;br /&gt;
*AutoChangeOver&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual operating mode of the HVAC.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired energy mode. Can be &amp;lt;tt&amp;gt;Normal&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;EnergySavingsMode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual energy mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, and if 0, the thermostat doesn't support auto mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired HVAC operating mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetEnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired energy mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_OperatingState1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HVAC_OperatingState1&lt;br /&gt;
*'''File''': S_HVAC_OperatingState1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents what the HVAC is actually doing right now. The most common actions are:&lt;br /&gt;
*Idle&lt;br /&gt;
*Heating&lt;br /&gt;
*Cooling&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_FanOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_FanOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_FanOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The fan operation mode. Can be:&lt;br /&gt;
*Auto&lt;br /&gt;
*ContinuousOn&lt;br /&gt;
*PeriodicOn&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FanStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current fan state; can be ''On'' or ''Off''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the fan operating mode. Changes the Mode variable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TemperatureSetpoint1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSetpoint1&lt;br /&gt;
*'''File''': S_TemperatureSetpoint1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetpointTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllSetpoints&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma separated list containing the current setpoints for the following thermostat modes: heat, cool, auto.&lt;br /&gt;
Format: &amp;lt;code&amp;gt;HEAT,COOL,AUTO&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;AllSetpoints = 72,74,73&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*72 = heating setpoint&lt;br /&gt;
*74 = cooling setpoint&lt;br /&gt;
*73 = auto mode setpoint&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, the thermostat doesn't support auto setpoint, so set heat+cool this many degrees +/-&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReportMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | char&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;quot;M&amp;quot; = The report correspond to the current mode of operation and should update the setpoint in the received mode (default),&lt;br /&gt;
&amp;quot;S&amp;quot; = The report correspond to the current operating state and should update the setpoint in the current mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Range&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reject setpoint change commands whose setpoint is outside the specified range.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where each range has this format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,C&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;/F&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,F&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The range limits are inclusive, meaning the new setpoint must be &amp;gt;= X&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;lt;= X&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;14,34/58,92;16,44/60,112;-1,32/30,90&amp;lt;/code&amp;gt;&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt; = 14,34/58,92: this means that the '''auto''' setpoint must be between 14 and 34 if it's in Celsius, and between 58 and 92 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt; = 16,44/60,112: this means that the '''cool''' setpoint must be between 16 and 44 if it's in Celsius, and between 60 and 112 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt; = -1,32/30,90: this means that the '''heat''' setpoint must be between -1 and 32 if it's in Celsius, and between 30 and 90 if it's in Fahrenheit.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target setpoint.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TemperatureSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSensor1&lt;br /&gt;
*'''File''': S_TemperatureSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentTemperature&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GenericSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:GenericSensor1&lt;br /&gt;
*'''File''': S_GenericSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LightSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:LightSensor1&lt;br /&gt;
*'''File''': S_LightSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HumiditySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HumiditySensor1&lt;br /&gt;
*'''File''': S_HumiditySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SecuritySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SecuritySensor1&lt;br /&gt;
*'''File''': S_SecuritySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Tripped&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used by MiOS as a way to disable sending notifications when a sensor is tripped/untripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the UNIX time when the sensor last reported that it was tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreTripTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used to filter trip events, the value specify the time in seconds of the filter, internally it will record the last event and after the time has elapsed it will set the variable Tripped to the last known event recorded.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoUntrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used for those devices that doesn't send the Untrip command and requires to automatically untrip after certain time. The value correspond to the time in seconds that the controller will set the Tripped variable to 0 after a Trip event. To disable this feature, set the variable to 0 or remove it from the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetArmed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newArmedValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Arms or disarms the sensor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EnergyMetering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:EnergyMetering1&lt;br /&gt;
*'''File''': S_EnergyMetering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Watts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If the device can report its wattage, this is the value reported by the device, otherwise this is the value supplied by the user in &amp;lt;tt&amp;gt;UserSupliedWattage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Pulse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserSuppliedWattage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | See &amp;lt;tt&amp;gt;Watts&amp;lt;/tt&amp;gt;.&lt;br /&gt;
'''Note:''' For thermostats, &amp;lt;tt&amp;gt;UserSuppliedWattage&amp;lt;/tt&amp;gt; consists of 3 numbers separated by commas. The default is 1500,1500,300. The first number is how many watts are used when the thermostat is in 'heat' mode; the second is how many watts are used when the thermostat is in 'cool' mode; and the third number is for the 'fan only' mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | KWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Log&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of values:&lt;br /&gt;
&amp;lt;code&amp;gt;CurrentConsumption,Average,Peak,LastReading,Seconds&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*''LastReading'' is the Unix time.&lt;br /&gt;
*''Seconds'' is the period of time the ''Average'' value was computed for.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ResetKWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrTransmitter1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrTransmitter1&lt;br /&gt;
*'''File''': S_IrTransmitter1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SendProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sends the given IR code.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SerialPort1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-org:serviceId:SerialPort1&lt;br /&gt;
*'''File''': S_SerialPort1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | path&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the serial port. On Vera Lite it's &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | baud&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The baud rate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | stopbits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of stop bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | databits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of data bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | parity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Can be &amp;lt;tt&amp;gt;odd&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;even&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SceneController1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneController1&lt;br /&gt;
*'''File''': S_SceneController1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneActivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the activated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneDeactivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the deactivated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scenes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The scene ID (as reported by the scene controller) of the last activated or deactivated scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the scene was last activated or deactivated.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManageLeds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, automatically turn on/off the scene indicator lights.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumButtons&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;NumberOfButtons[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,etc.]]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*'''ButtonNumber''' must be from 1 to ''NumberOfButtons''.&lt;br /&gt;
*'''AssociationNumber''' is the association group.&lt;br /&gt;
*'''SceneNumber''' is an event ID, and it's sent instead of the one we program.&lt;br /&gt;
*'''ButtonName''' is the user friendly name of the button.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2,1-1-1=Tap Button,2-2-2=Hold Button&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ButtonMapping&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;OldButtonNumber-Attribute-NewButtonNumber[,OldButtonNumber-Attribute-NewButtonNumber[,etc.]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where '''Attribute''' has the following meaning:&lt;br /&gt;
&lt;br /&gt;
*0 = Key pressed&lt;br /&gt;
*1 = Key is released, sent only as a termination of a Key Held Down sequence&lt;br /&gt;
*2 = Key held down&lt;br /&gt;
*3 = Key double tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
*4 = Key triple tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; These attributes were added in COMMAND_CLASS_CENTRAL_SCENE V2, so it's not available on all the scene controllers.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1-0-1,1-3-2,2-0-3,2-3-4,3-0-5,3-3-6,4-0-7,4-3-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneShortcuts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FiresOffEvents&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ActivationMethod&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave stuff.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SceneControllerLED1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneControllerLED1&lt;br /&gt;
*'''File''': S_SceneControllerLED1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The lights' state. The lower 4 bits of &amp;lt;tt&amp;gt;LightSettings&amp;lt;/tt&amp;gt; are the 4 green LEDs, and the upper 4 are the 4 red LEDs. So, 10001 is an orange light, 110010 is an orange light and a red, etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SetLight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Change a light's state.&lt;br /&gt;
*&amp;lt;tt&amp;gt;newValue&amp;lt;/tt&amp;gt; is the new light state. The valid values are:&lt;br /&gt;
**0 = off&lt;br /&gt;
**1 = green&lt;br /&gt;
**2 = red&lt;br /&gt;
**3 = orange&lt;br /&gt;
*&amp;lt;tt&amp;gt;Indicator&amp;lt;/tt&amp;gt; is the button number.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicator&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrDevice1&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrDevice1&lt;br /&gt;
*'''File''': S_IrDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codesets&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | SendCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Button&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Repeat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Color1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Color1&lt;br /&gt;
*'''File''': S_Color1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Variable&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| CurrentColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| TargetColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ColorMode&lt;br /&gt;
| string&lt;br /&gt;
| Currently used only for Revogi.&lt;br /&gt;
Can have only 2 values:&lt;br /&gt;
*0 = Colorful mode&lt;br /&gt;
*1 = Color temperature mode&lt;br /&gt;
|-&lt;br /&gt;
| ColorChannelPriorities&lt;br /&gt;
| string&lt;br /&gt;
| Specify the color channel priorities like this:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;gt;1&amp;gt;2,3,4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That value can be interpretted like this: channel 0 has priority over channel 1, which has priority over channels 2, 3 and 4.&lt;br /&gt;
|-&lt;br /&gt;
| SupportedColors&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/ModifyUserData</id>
		<title>ModifyUserData</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/ModifyUserData"/>
				<updated>2017-11-28T11:56:17Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User Instructions]]&lt;br /&gt;
&lt;br /&gt;
ModifyUserData is the action used to change information like adding rooms, renaming devices, scenes and so on.&lt;br /&gt;
&lt;br /&gt;
It works as a UPNP POST request to http://IP:3480/upnp/control/hag which contains an XML envelope:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;s:envelope s:encodingStyle=&amp;quot;http://schemas.xmlsoap.org/soap/encoding/&amp;quot; xmlns:s=&amp;quot;http://schemas.xmlsoap.org/soap/envelope/&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;s:body&amp;gt;	&lt;br /&gt;
	&amp;lt;u:modifyuserdata xmlns:u=&amp;quot;urn:schemas-micasaverde-org:service:HomeAutomationGateway:1&amp;quot;&amp;gt;		&lt;br /&gt;
	&amp;lt;inuserdata&amp;gt;{&amp;quot;devices&amp;quot;: {    &lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;scenes&amp;quot;: {&lt;br /&gt;
    &amp;quot;scenes_1000001&amp;quot;: {&lt;br /&gt;
      &amp;quot;id&amp;quot;: 1000001,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;New scene&amp;quot;,&lt;br /&gt;
      &amp;quot;posx&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;posy&amp;quot;: 0,&lt;br /&gt;
      &amp;quot;room&amp;quot;: 0&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;sections&amp;quot;: {    &lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;rooms&amp;quot;: [    &lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;users&amp;quot;: {    &lt;br /&gt;
  }&lt;br /&gt;
  }&amp;lt;/inuserdata&amp;gt;		&lt;br /&gt;
  		&amp;lt;dataformat&amp;gt;json&amp;lt;/dataformat&amp;gt;  &lt;br /&gt;
	&amp;lt;/u:modifyuserdata&amp;gt;&lt;br /&gt;
	&amp;lt;/s:body&amp;gt;&lt;br /&gt;
  &amp;lt;/s:envelope&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The objects from the JSON object are added if they contain the tag &amp;quot;json_action&amp;quot;: &amp;quot;add&amp;quot;, deleted if they contain &amp;quot;json_action&amp;quot;: &amp;quot;del&amp;quot; or merged if neither one of those is contained (default action).&lt;br /&gt;
&lt;br /&gt;
For example, assume that the data is currently like this: &lt;br /&gt;
&lt;br /&gt;
  &amp;quot;Room&amp;quot;: {&lt;br /&gt;
        &amp;quot;PK_Room_1&amp;quot;: {&lt;br /&gt;
            &amp;quot;Description&amp;quot;: &amp;quot;Living Room&amp;quot;,&lt;br /&gt;
            &amp;quot;FK_Section&amp;quot;: &amp;quot;1&amp;quot; &lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;PK_Room_2&amp;quot;: {&lt;br /&gt;
            &amp;quot;Description&amp;quot;: &amp;quot;Bedroom&amp;quot;,&lt;br /&gt;
            &amp;quot;FK_Section&amp;quot;: &amp;quot;1&amp;quot; &lt;br /&gt;
        } &lt;br /&gt;
&lt;br /&gt;
You want to remove the bedroom and add a new room called &amp;quot;Den&amp;quot; and change the Living Room to be called Kitchen. You put the following in the parm post: &lt;br /&gt;
&lt;br /&gt;
{ &lt;br /&gt;
&lt;br /&gt;
    &amp;quot;Room&amp;quot;: {&lt;br /&gt;
        &amp;quot;PK_Room_2&amp;quot;: {&lt;br /&gt;
            &amp;quot;json_action&amp;quot;: &amp;quot;del&amp;quot; &lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;PK_Room_1&amp;quot;: {&lt;br /&gt;
            &amp;quot;Description&amp;quot;: &amp;quot;Kitchen&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;PK_Room_1000002&amp;quot;: {&lt;br /&gt;
            &amp;quot;Description&amp;quot;: &amp;quot;Den&amp;quot;,&lt;br /&gt;
            &amp;quot;FK_Section&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
            &amp;quot;json_action&amp;quot;: &amp;quot;add&amp;quot; &lt;br /&gt;
        } &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
Note that Sections, Rooms, Devices, and Scenes are all numbered: PK_Room_1, scene_2, etc. When are adding new Sections, Rooms, Devices, and Scenes, use a number that is very high (&amp;amp;gt; 1,000,000) to prevent conflicts. Note that Room uses a really large ID. You don't want to use the next available ID, like 3, because that might already have been created by another user, and, since the ID # is the key to merging, your new room would be preserved and there would be 2 room 3's if json_action=add, or your changes would be merged and overwrite room 3 otherwise. When you use large id's &amp;amp;gt; 1m, then on save, the system automatically re-numbers them and re-outputs the renumbered result. This includes relationships as well. So if you are submitting a new scene, device, room, etc., the device may be id 1m, and reference room 2, so it goes into room 2, and a new device id 1m + 1 may reference room 1m. In this case both device id's would be renumbered, and the room 1m would be renumbered, and the reference in the device id 1m + 1 would be changed to reflect this.&lt;br /&gt;
&lt;br /&gt;
If ModifyUserData fails, it return an UPNP error.&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Device_Categories</id>
		<title>Luup Device Categories</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Device_Categories"/>
				<updated>2017-11-17T11:52:22Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Device categories and subcategories mapping.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category&lt;br /&gt;
! Device Type&lt;br /&gt;
! Subcategory&lt;br /&gt;
! Device Type&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Dimmable Light&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Bulb&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Plugged&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Switch&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Exterior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Refrigerator&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| Garage Door&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Valve&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Security Sensor&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Door Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Leak Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Motion Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Smoke Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| CO Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Glass Break Sensor&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | HVAC&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Heater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Custom HVAC&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Camera&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Indoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Outdoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Doorbell&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Door Lock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 8&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Window Covering&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Window Covering&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| ZRTSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 9&lt;br /&gt;
| Remote Control&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 10&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | IR Transmitter&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| IR Transmitter&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| USB UIRT&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 11&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Generic I/O&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Generic I/O&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Repeater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 12&lt;br /&gt;
| Generic Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 13&lt;br /&gt;
| Serial Port&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 14&lt;br /&gt;
| Scene Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 15&lt;br /&gt;
| A/V&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 16&lt;br /&gt;
| Humidity Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 17&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 18&lt;br /&gt;
| Light Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 19&lt;br /&gt;
| Z-Wave Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 20&lt;br /&gt;
| Insteon Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 21&lt;br /&gt;
| Power Meter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 22&lt;br /&gt;
| Alarm Panel&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 23&lt;br /&gt;
| Alarm Partition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 24&lt;br /&gt;
| Siren&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 25&lt;br /&gt;
| Weather&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 26&lt;br /&gt;
| Philips Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 27&lt;br /&gt;
| Appliance&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 28&lt;br /&gt;
| UV Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 29&lt;br /&gt;
| Mouse Trap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 30&lt;br /&gt;
| Doorbell&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 31&lt;br /&gt;
| Keypad&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Device_Categories</id>
		<title>Luup Device Categories</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Device_Categories"/>
				<updated>2017-11-16T14:52:32Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Device categories and subcategories mapping.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category&lt;br /&gt;
! Device Type&lt;br /&gt;
! Subcategory&lt;br /&gt;
! Device Type&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Dimmable Light&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Bulb&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Plugged&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| RGB&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Switch&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Exterior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Refrigerator&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| Garage Door&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Valve&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Security Sensor&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Door Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Leak Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Motion Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Smoke Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| CO Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Glass Break Sensor&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | HVAC&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Heater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Custom HVAC&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Camera&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Indoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Outdoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Doorbell&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Door Lock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 8&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Window Covering&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Window Covering&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| ZRTSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 9&lt;br /&gt;
| Remote Control&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 10&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | IR Transmitter&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| IR Transmitter&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| USB UIRT&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 11&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Generic I/O&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Generic I/O&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Repeater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 12&lt;br /&gt;
| Generic Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 13&lt;br /&gt;
| Serial Port&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 14&lt;br /&gt;
| Scene Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 15&lt;br /&gt;
| A/V&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 16&lt;br /&gt;
| Humidity Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 17&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 18&lt;br /&gt;
| Light Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 19&lt;br /&gt;
| Z-Wave Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 20&lt;br /&gt;
| Insteon Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 21&lt;br /&gt;
| Power Meter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 22&lt;br /&gt;
| Alarm Panel&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 23&lt;br /&gt;
| Alarm Partition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 24&lt;br /&gt;
| Siren&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 25&lt;br /&gt;
| Weather&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 26&lt;br /&gt;
| Philips Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 27&lt;br /&gt;
| Appliance&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 28&lt;br /&gt;
| UV Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 29&lt;br /&gt;
| Mouse Trap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 30&lt;br /&gt;
| Doorbell&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Device_Categories</id>
		<title>Luup Device Categories</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Device_Categories"/>
				<updated>2017-11-15T10:40:02Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Device categories and subcategories mapping.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category&lt;br /&gt;
! Device Type&lt;br /&gt;
! Subcategory&lt;br /&gt;
! Device Type&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Dimmable Light&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Bulb&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Plugged&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Colored&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Switch&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Exterior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Refrigerator&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| Garage Door&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Valve&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Security Sensor&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Door Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Leak Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Motion Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Smoke Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| CO Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Glass Break Sensor&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | HVAC&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Heater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Custom HVAC&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Camera&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Indoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Outdoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Doorbell&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Door Lock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 8&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Window Covering&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Window Covering&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| ZRTSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 9&lt;br /&gt;
| Remote Control&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 10&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | IR Transmitter&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| IR Transmitter&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| USB UIRT&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 11&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Generic I/O&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Generic I/O&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Repeater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 12&lt;br /&gt;
| Generic Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 13&lt;br /&gt;
| Serial Port&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 14&lt;br /&gt;
| Scene Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 15&lt;br /&gt;
| A/V&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 16&lt;br /&gt;
| Humidity Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 17&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 18&lt;br /&gt;
| Light Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 19&lt;br /&gt;
| Z-Wave Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 20&lt;br /&gt;
| Insteon Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 21&lt;br /&gt;
| Power Meter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 22&lt;br /&gt;
| Alarm Panel&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 23&lt;br /&gt;
| Alarm Partition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 24&lt;br /&gt;
| Siren&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 25&lt;br /&gt;
| Weather&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 26&lt;br /&gt;
| Philips Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 27&lt;br /&gt;
| Appliance&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 28&lt;br /&gt;
| UV Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 29&lt;br /&gt;
| Mouse Trap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 30&lt;br /&gt;
| Doorbell&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions</id>
		<title>Luup UPnP Variables and Actions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions"/>
				<updated>2017-10-19T08:28:37Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* HaDevice1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all the UPnP actions and variables used by MiOS.&lt;br /&gt;
&lt;br /&gt;
Some actions and variables have self-explanatory names, so there's a dash ('-') instead of the description.&lt;br /&gt;
&lt;br /&gt;
== HomeAutomationGateway1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HomeAutomationGateway1&lt;br /&gt;
*'''File''': S_HomeAutomationGateway1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataVersion&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A number that increases each time the data changes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Unique Device Name of the UPnP device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload the LuaUPnP engine.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ModifyUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | inUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Make changes to the UserData.&lt;br /&gt;
*&amp;lt;tt&amp;gt;inUserData&amp;lt;/tt&amp;gt; is the new UserData object which will be added to the UserData or will replace an existent UserData object.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DataFormat&amp;lt;/tt&amp;gt; must be ''json''.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is ''1'' the LuaUPnP engine will reload after the UserData is modified.&lt;br /&gt;
&lt;br /&gt;
For more information read the [[ModifyUserData]] page.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataFormat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Create or change the value of a variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; can be an UDN or a number.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Service&amp;lt;/tt&amp;gt; is the service ID of the variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Variable&amp;lt;/tt&amp;gt; is the variable name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Value&amp;lt;/tt&amp;gt; is the new variable value.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Service&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Variable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | RunScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Run the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SceneOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Turn off all the devices from DEVICE_CATEGORY_DIMMABLE_LIGHT and DEVICE_CATEGORY_SWITCH from the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | RunLua&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Run the given Lua code. If &amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; is specified, the code is run using that device's interface.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Code&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | CreateDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | deviceType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | Create a device using the given parameters.&lt;br /&gt;
*&amp;lt;tt&amp;gt;deviceType&amp;lt;/tt&amp;gt; is the UPnP device type.&lt;br /&gt;
*&amp;lt;tt&amp;gt;internalID&amp;lt;/tt&amp;gt; is the specific ID (also known as ''altid'') of the device; for example, for Z-Wave devices this is the Node ID, and for Insteon device it is the Insteon ID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Description&amp;lt;/tt&amp;gt; is the device name, which is shown to the user on the dashboard.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpDevFilename&amp;lt;/tt&amp;gt; is the UPnP device description file name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpImplFilename&amp;lt;/tt&amp;gt; is the implementation file to use.&lt;br /&gt;
*If the device is IP based, &amp;lt;tt&amp;gt;IpAddress&amp;lt;/tt&amp;gt; is the IP address and port of the device.&lt;br /&gt;
*If this should be the child of another device, &amp;lt;tt&amp;gt;DeviceNumParent&amp;lt;/tt&amp;gt; is the device number of the parent device.&lt;br /&gt;
*&amp;lt;tt&amp;gt;RoomNum&amp;lt;/tt&amp;gt; is the number of the room the device will be in.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; tells the device which plugin to use. The plugin will be installed automatically if it's not already installed.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; is a string containing the variables you want set when the device is created. You can specify multiple variables by separating them with a line feed ('\n'), and use ',' and '=' to separate service, variable and value, like this: &amp;lt;tt&amp;gt;service,variable=value\nservice,variable=value\n&amp;lt;/tt&amp;gt;...&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is '''1''', the Luup engine will be restarted after the device is created.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | internalID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpDevFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpImplFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Username&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Password&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNumParent&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | DeleteDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Delete the device given either through its number, or through its UDN.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | CreatePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Create a plugin with the &amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; number and &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; version. &amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; are the variables that will be set when the device is created. For more information look at the description of the '''CreateDevice''' action above.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Version&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DeletePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Uninstall the given plugin.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | CreatePluginDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Creates a device for plugin #&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ImportUpnpDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | LogIpRequest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetHouseMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Changes the house mode.&lt;br /&gt;
&amp;lt;tt&amp;gt;Mode&amp;lt;/tt&amp;gt; can be:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = Home&lt;br /&gt;
*&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = Away&lt;br /&gt;
*&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = Night&lt;br /&gt;
*&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = Vacation&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HaDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HaDevice1&lt;br /&gt;
*'''File''': S_HaDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CommFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is set to ''1'' if we've lost communication with the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The configuration state of the device:&lt;br /&gt;
*-3 = Configuration failed&lt;br /&gt;
*-2 = Configuration in progress&lt;br /&gt;
*-1 = Device waiting to be configured&lt;br /&gt;
*0 = Device not configured&lt;br /&gt;
*1 = Device successfully configured&lt;br /&gt;
*2 = Device partially configured&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoConfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically check the routing info for this every 12 hours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The battery level reported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the &amp;lt;tt&amp;gt;BatteryLevel&amp;lt;/tt&amp;gt; was reported.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeCheck&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Only for devices that are capable of implementing time, this is when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeOffset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | For &amp;lt;tt&amp;gt;LastTimeCheck&amp;lt;/tt&amp;gt;, this is the timezone offset from UTC when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device information was last updated. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FirstConfigured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device was first configured. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreRoom&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used only by the MiOS scene controller. Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Commands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of &amp;lt;tt&amp;gt;ControlCodes&amp;lt;/tt&amp;gt; for the enabled UI controls. If the &amp;lt;tt&amp;gt;ControlCode&amp;lt;/tt&amp;gt; of an UI control (e.g. button) is not in this list, the button will be disabled (greyed out). If this variable is missing, all controls will be enabled. If this variable is empty, all controls will be disabled.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IODevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The device number to connect to for IO. (this is on the master device)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IOPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The port to receive connections on from &amp;lt;tt&amp;gt;IODevice&amp;lt;/tt&amp;gt;. (this is on the serial port)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReverseOnOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, the commands for some devices are reversed (e.g. the On command will turn the device Off, and vice versa). Not all devices support this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_Alarm&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Currently used only by the water leak sensor, contains the alarm code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeSetting&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains the state of the device for each house mode.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;&amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;...&lt;br /&gt;
&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is empty, the sensor is disarmed/bypassed.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is &amp;quot;A&amp;quot;, the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1:;2:A;3:A;4:A&lt;br /&gt;
&lt;br /&gt;
*In &amp;lt;tt&amp;gt;Home&amp;lt;/tt&amp;gt;(1) mode the sensor is disarmed;&lt;br /&gt;
*in &amp;lt;tt&amp;gt;Away&amp;lt;/tt&amp;gt;(2), &amp;lt;tt&amp;gt;Night&amp;lt;/tt&amp;gt;(3) and &amp;lt;tt&amp;gt;Vacation&amp;lt;/tt&amp;gt;(4) modes the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Children&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of KitDevice numbers.&lt;br /&gt;
LuaUPnP will create a child device for every item in the list, with the specified KitDevice properties.&lt;br /&gt;
&lt;br /&gt;
Can be used to add children to devices which don't have MultiChannel support.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the polls are doing, where 5.0 means that the last 50 polls were successful and 0.0 means that all the last 50 polls were unsuccessful.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the wakeups are being received, where 5.0 means that the we received the last 50 wakeups when they have suppose to be sent and 0.0 means that we didn't receive any of the 50 last wakeups that the device should have sent&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''See the description of this variable in ZWaveDevice1 section, because it should belong to the service urn:micasaverde-com:serviceId:ZWaveDevice1, but it was kept in urn:micasaverde-com:serviceId:HaDevice1 to maintain backward compatibility.'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeConfiguration&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Implementation of custom preset modes for any device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;[&amp;amp;#124;&amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;upnp_action&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;service&amp;amp;gt;/&amp;amp;lt;action&amp;amp;gt;/&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;[&amp;amp;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the value is '?', it means that it's a wildcard and the ''ModeSettings'' variable should contain a comma separated list of values in order to substitute this '?' wildcard. If the value is not '?', then the value is fixed and it should be URL encoded.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 h;h code;urn:upnp-org:serviceId:SwitchPower1/SetTarget/newTargetValue=?&amp;amp;otherParameter=45&amp;amp;another=?&amp;amp;#124;s;s code;urn:upnp-org:serviceId:Dimming1/SetTargetLevel/newLevel=34&amp;amp;other=?&amp;amp;another=4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeControls&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used to tell the UI what controls to show in the House modes configuration page for the actions in the ''CustomModeConfiguration'' variable.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;;&amp;lt;control info for arg #2&amp;gt;;..;&amp;lt;control info for arg #N&amp;gt;[&amp;amp;#124;&amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | StressTest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stress test the Z-Wave device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove the device from the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ToggleState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Toggle the state of the device (e.g. if the device it's Off, turns it On). The device must have a binary state (On/Off, Locked/Unlocked, etc.).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ZWaveDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveDevice1&lt;br /&gt;
*'''File''': S_ZWaveDevice1.xml ''(nonexistent)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the polling frequency for a node (i.e. the minimum number of seconds between two poll commands to the same node). If this variable doesn't exist or is blank, the default polling frequency set in the &amp;lt;tt&amp;gt;ZWaveNetwork1&amp;lt;/tt&amp;gt;'s &amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt; variable will be used. If it's '''0''', polling will be disabled for this node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollCommands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of command classes/commands to poll. '&amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt;' means the device won't respond to any poll.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChEndpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Neighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbor devices' node IDs. '1' is the Vera's node ID.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NeighborsInverse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbors that see us.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Capabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The first 6 numbers in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are what is reported by the &amp;lt;tt&amp;gt;ZW_GetNodeProtocolInfo&amp;lt;/tt&amp;gt; function: Capability, Security, Reserved, Basic Device Class [, Generic Device Class, Specific Device Class]. If the &amp;lt;tt&amp;gt;Capability&amp;lt;/tt&amp;gt; is &amp;gt;= 128, then the device listens for commands, otherwise it's a battery operated device that only wakes up occasionally. After the '&amp;amp;#124;' in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are the command classes supported. More information here: [[ZWave Command Classes]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SecurityFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't talk to this node with security even if the node reports it can.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastReset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When we last reset the node association. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How often this battery operated device should wake up to report its status. The default value is 1800 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredWakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The wakeup interval already configured on the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastWakeup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device last woke up and reported its status. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastRouteUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device's routing information was last checked/updated. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Health&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A rating from 0-5. A large number means that MiOS can communicate with it easily.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HealthDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The date the rating was assigned. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings read from the device.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number,variable1_value,variable2_number,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings set by the user.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number-variable1_description,variable1_data_type,variable1_value,variable2_number-variable2_description,variable2_data_type,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This are the association settings read from the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave associations for a device are stored in this variable.&lt;br /&gt;
The associations are delimited by ';', 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 IDs, not device IDs (ie the 'altid' in the UI). If the node ID is 'z', it means the node ID of the device for which the variable is set.&lt;br /&gt;
&lt;br /&gt;
For multi-channel there is a '.' following the node ID with the endpoint ID.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1,3.4,7;2,5.1,8&lt;br /&gt;
&lt;br /&gt;
Means group #1 is associated with node #3 endpoint #4 and with node #7, which is non-multi-channel; group #2 is associated with node #5 endpoint #1, and with node #8.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of association groups supported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NonceACK&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManufacturerInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device information. Format:&lt;br /&gt;
 ManufacturerID,ProductType,ProductID&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is what's reported by the COMMAND_CLASS_VERSION command VERSION_REPORT. There are 5 values: Z-Wave Library Type, Z-Wave Protocol Version, Z-Wave Protocol Sub Version, Application Version, Application Sub Version. The &amp;lt;tt&amp;gt;Application Version&amp;lt;/tt&amp;gt; is specific to the device and not defined by Z-Wave.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetPointInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of the supported setpoint types:&lt;br /&gt;
*&amp;lt;tt&amp;gt;H1&amp;lt;/tt&amp;gt; = Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C1&amp;lt;/tt&amp;gt; = Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;F1&amp;lt;/tt&amp;gt; = Furnace&lt;br /&gt;
*&amp;lt;tt&amp;gt;D1&amp;lt;/tt&amp;gt; = Dry Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;MA&amp;lt;/tt&amp;gt; = Moist Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;AC&amp;lt;/tt&amp;gt; = Auto changeover&lt;br /&gt;
*&amp;lt;tt&amp;gt;H2&amp;lt;/tt&amp;gt; = Energy Save Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C2&amp;lt;/tt&amp;gt; = Energy Save Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;AH&amp;lt;/tt&amp;gt; = Away Heating&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of the command classes supported by this device. (hexadecimal numbers)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InitialName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The name that was initially set when the node was first added.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified name when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;VariablesSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredAssoc&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;AssociationSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Documentation&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL of the documentation used on the ''Device Options'' page.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The meter type:&lt;br /&gt;
*1 = electric&lt;br /&gt;
*2 = gas&lt;br /&gt;
*3 = water&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A bit map of the supported meter scales.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | List of the supported alarm types.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollOk, PollTxFail, PollNoReply&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | These variables are incremented each time the last poll job has the status they describe. They are reset after each network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A route specified by the end-user. This is a '''dot'''-separated list of nodes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllRoutesFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when all the manual routes have failed.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This contains a list of various routes chosen by profilings.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 route1_node1.route1_node2...-route1_score[x],route2_node1.route2_node2...-route2_score[x],...&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;score&amp;lt;/tt&amp;gt; is a measure of latency and accuracy, the lower the number, the better. '&amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;' means that the last attempt to use this route failed, so it won't be used anymore.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreDirectScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SwitchMlSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BasicSetCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining actions for BASIC_SET messages.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Value&amp;gt;=&amp;lt;Action&amp;gt;&amp;lt;Endpoint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*Value &amp;amp;nbsp;: the BASIC_SET Value; if Value is &amp;quot;XX&amp;quot;, it means any value&lt;br /&gt;
*Action &amp;amp;nbsp;: the Action to perform; the supported values are: T&amp;lt;tt&amp;gt;=Trip&amp;lt;/tt&amp;gt;, U&amp;lt;tt&amp;gt;=Untrip&amp;lt;/tt&amp;gt;, O&amp;lt;tt&amp;gt;=On&amp;lt;/tt&amp;gt;, F&amp;lt;tt&amp;gt;=Off&amp;lt;/tt&amp;gt;, D&amp;lt;tt&amp;gt;=Dim&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Endpoint &amp;amp;nbsp;: the Endpoint device ID (altid); if Endpoint=0, it means the parent node, or the current node if the device has no children&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=Ue1,FF=Te1&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Untrip endpoint &amp;quot;e1&amp;quot;; if receive 0xFF, Trip endpoint &amp;quot;e1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;XX=D02&amp;lt;/code&amp;gt; =&amp;gt; Dim endpoint 02 to whatever value received&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=T0,FF=U0&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Trip the current node; if receive 0xFF, Untrip the current node&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SupportedMRTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining which meter report types are supported by the device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;;&amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*CC Hex &amp;amp;nbsp;: the Hex value of the command class (without 0x):&lt;br /&gt;
**0x31 for COMMAND_CLASS_SENSOR_MULTILEVEL&lt;br /&gt;
**0x32 for COMMAND_CLASS_METER&lt;br /&gt;
*Supported Type &amp;amp;nbsp;: The HEX value of the type supported for the Command class without 0x&lt;br /&gt;
**Supported types for COMMAND_CLASS_SENSOR_MULTILEVEL:&lt;br /&gt;
***Temperature = 0x01&lt;br /&gt;
***General = 0x02&lt;br /&gt;
***Luminance = 0x03&lt;br /&gt;
***Power = 0x04&lt;br /&gt;
***RelativeHumidity = 0x05&lt;br /&gt;
***Velocity = 0x06&lt;br /&gt;
***Direction = 0x07&lt;br /&gt;
***AtmosphericPressure = 0x08&lt;br /&gt;
***BarometricPressure = 0x09&lt;br /&gt;
***SolarRadiation = 0x0A&lt;br /&gt;
***DewPoint = 0x0B&lt;br /&gt;
***RainRate = 0x0C&lt;br /&gt;
***TideLevel = 0x0D&lt;br /&gt;
***Weight = 0x0E&lt;br /&gt;
***Voltage = 0x0F&lt;br /&gt;
***Current = 0x10&lt;br /&gt;
***CO2level = 0x11&lt;br /&gt;
***AirFlow = 0x12&lt;br /&gt;
***TankCapacity = 0x13&lt;br /&gt;
***Distance = 0x14&lt;br /&gt;
***SeismicIntensity = 0x19&lt;br /&gt;
***UltraViolet = 0x1B&lt;br /&gt;
&lt;br /&gt;
**Supported types for COMMAND_CLASS_METER:&lt;br /&gt;
***Electric=0x01&lt;br /&gt;
***Gas=0x02&lt;br /&gt;
***Water=0x03&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;31-0F,0E,10,1B;32-01,03&amp;lt;/code&amp;gt; =&amp;gt; Device supports Voltage, Weight, Current and UltraViolet for COMMAND_CLASS_SENSOR_MULTILEVEL and Electric and Water from COMMAND_CLASS_METER&lt;br /&gt;
&lt;br /&gt;
If the variable is empty it will be treated as support anything. If the variable does not contain a command class that command class will be treated as support everything.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NoChildren&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this variable is '''1''', delete the child devices, and don't allow the creation of other child devices, to avoid creating ghost devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''(NOTE: this is its new service. ''urn:micasaverde-com:serviceId:HaDevice1'' was left unchanged to mantain backward compatibility.)'''&lt;br /&gt;
Allows setting what each Alarm Type does for devices using COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION. The format is:&lt;br /&gt;
&lt;br /&gt;
 AlarmTypes:AlarmLevels:AlarmCode:Action;AlarmTypes:AlarmLevels:AlarmCode:Action&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmTypes&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;type1,type2-type3,!type4&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmLevels&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;00,01,05-20,!FF&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;SMOKE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAMPER_ALARM&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Action&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = don't update the ''Tripped'' variable, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = update the ''Tripped'' variable, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = ignore the message (i.e. don't update the ''sl_Alarm'' variable)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 01:FF:SMOKE:1;0C:FF::1;0D:FF:TAMPER_ALARM:0&lt;br /&gt;
&lt;br /&gt;
*if Alarm Type is ''0x01'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;SMOKE&amp;quot; and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0C'' and the Alarm Level is ''0xFF'', don't update the ''sl_Alarm'' variable, and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0D'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;TAMPER_ALARM&amp;quot;, but don't trip the sensor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypesV2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows customizing the handling of the COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION &amp;gt;= v2 messages.&lt;br /&gt;
The format is a ';' separated list of tokens. Format of each token:&lt;br /&gt;
&lt;br /&gt;
 TypesV1:LevelV1:NotificationStatus:NotificationType:Event:AlarmCode:TripValue&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;TypesV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1_v1,type2_v1-type3_v1,!type4_v1, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;LevelV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,02-05,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationStatus&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 01-FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationType&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1,type2-type3,!type4, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Event&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,03-5A,!04,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: SMOKE, CO, TAMPER_ALARM, etc. Leave empty if you don't want to set an alarm code.&lt;br /&gt;
*&amp;lt;tt&amp;gt;TripValue&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 0 = Untrip, 1 = Trip, C = don't update the Tripped variable (only the Alarm Code), X = Ignore&lt;br /&gt;
&lt;br /&gt;
If the TypeV1 or NotificationType are not XX and if there was no match, the function will try the next token.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGroups&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, associate ourselves only with these groups, not all groups. The groups should be given as a comma separated list, like this:&lt;br /&gt;
 1,3,4,255&lt;br /&gt;
&lt;br /&gt;
You could add this variable with a value = 0 if you want to be in NO association groups.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreCommandClass&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows ignoring specific command classes (CC) for that device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC #1&amp;gt;-&amp;lt;Command #1&amp;gt;,&amp;lt;Command #2&amp;gt;;&amp;lt;CC #2&amp;gt;-*;&amp;lt;CC #3&amp;gt;-&amp;lt;Command #1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Both the command classes and the commands are given by their hex code.&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; is used as an wild card indicating all commands.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 26-03,05;71-*;20-03&lt;br /&gt;
&lt;br /&gt;
That means: ignore CC 26 commands 03 and 05, all commands from CC 71, and CC 20 command 03.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TemperatureScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the thermostat setpoint.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;Precision,Scale,Size&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*Precision: The number of decimals&lt;br /&gt;
*Scale: 0 = Celsius, 1 = Fahrenheit&lt;br /&gt;
*Size: Size of the setpoint in bits: number of bits = 2&amp;lt;sup&amp;gt;2+''Size''&amp;lt;/sup&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Size || Number of bits&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 16&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 32&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ZWaveNetwork1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveNetwork1&lt;br /&gt;
*'''File''': S_ZWaveNetwork1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The status of the Z-Wave network:&lt;br /&gt;
*0 = Status not set&lt;br /&gt;
*1 = OK&lt;br /&gt;
*2 = Quiting&lt;br /&gt;
*3 = Waiting to quit&lt;br /&gt;
*4 = No dongle&lt;br /&gt;
*5 = Configuring: still running init/configure scripts&lt;br /&gt;
*6 = Failure&lt;br /&gt;
*7 = Initializing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusText&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Full Z-Wave network status description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastError&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The last Z-Wave error in the network&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the Z-Wave component of the LuaUPnP engine started.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastDongleBackup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave dongle backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastHeal&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Z-Wave version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The unique ID of the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Role&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave specific stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TO3066&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the port where MiOS will search for the Z-Wave dongle. On Vera Lite, this is &amp;lt;tt&amp;gt;/dev/ttyS0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LockComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't search for the Z-Wave dongle on the other available ports if it doesn't find it on &amp;lt;tt&amp;gt;ComPort&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Use45&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use Z-Wave version 3.20 instead of 2.78.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UseMR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use MiOS routing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LimitNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | With MiOS routing: if this is &amp;quot;1&amp;quot;, when the routing table is created, consider only Z-Wave's neighbors as valid options.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically poll the Z-Wave devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds after the LuaUPnP engine has (re-)started before the polling loop begins.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds MiOS must not have transmitted any non-poll command before the next poll command is sent.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds between poll commands.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Minimum number of seconds between poll commands to the same node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneIDs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used for scene controllers. This is a CSV where each item has this format: &amp;lt;tt&amp;gt;node#-button#=ZWaveSceneID&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ResetNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ResetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Reset the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ResetMode&amp;lt;/tt&amp;gt; can be &amp;quot;SIS&amp;quot; or &amp;quot;SUC&amp;quot;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;HomeID&amp;lt;/tt&amp;gt; is a 32 bit hex number representing the new HomeID. If this parameter doesn't exist or is 0, MiOS will generate the new HomeID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ZeroMemory&amp;lt;/tt&amp;gt;: if this is &amp;quot;1&amp;quot;, the memory will be zeroed before resetting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ZeroMemory&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | PutByte&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Used to convert Z-Wave from 2.78 to 3.20 in which case the &amp;lt;tt&amp;gt;StartAddress&amp;lt;/tt&amp;gt; parameter must be &amp;quot;convert502_452&amp;quot; and the rest are ignored.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ReconfigureAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FailedOnly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the Z-Wave nodes. If &amp;lt;tt&amp;gt;FailedOnly&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, only the devices that failed to configure are reconfigured.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Get network update from SUC/SIS.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Update the neighbor nodes of the given device. &amp;lt;tt&amp;gt;Device&amp;lt;/tt&amp;gt; is the device number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | BackupDongle&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Restore&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Backs up the Z-Wave network. The backup is in &amp;lt;tt&amp;gt;/etc/cmh/dongle.dump&amp;lt;/tt&amp;gt;. If &amp;lt;tt&amp;gt;Restore&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, the Z-Wave network is restored from the backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | PollAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | RemoveNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | Puts Vera in exclude mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the exclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be excluded. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in exclude mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit exclude mode after a node is excluded.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits exclude mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | AddNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Puts Vera in include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the inclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be included. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in include mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit include mode after a node is included.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ControllerShift&amp;lt;/tt&amp;gt; must be &amp;quot;0&amp;quot;.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PK_KitDevice&amp;lt;/tt&amp;gt; is the KitDevice number of the device we expect to be included.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ControllerShift&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PK_KitDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DownloadNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Copy the Z-Wave network from a master controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | HealNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryMinutes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Heals/consolidates the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt;: how many minutes to wait for battery operated devices to be discovered.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Node&amp;lt;/tt&amp;gt; is not blank, then only this node will be repaired.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt; is the number of cycles to stress test each node.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Configure&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then all the devices will be re-configured when done.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;ManualRoute&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then only update MiOS routing (overrides other settings).&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt; is the starting heal stage. The valid values are:&lt;br /&gt;
**1 = Request network update.&lt;br /&gt;
**2 = Request neighbor node update.&lt;br /&gt;
**3 = Update the routing tables and neighbor nodes.&lt;br /&gt;
**4 = Calculate the best routes.&lt;br /&gt;
**5 = Re-configure all nodes.&lt;br /&gt;
**6 = Wait &amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt; to request neighbor node update and configure all battery operated nodes.&lt;br /&gt;
**7 = Do a stress test for &amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopStage&amp;lt;/tt&amp;gt;: Same as &amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StressCycles&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | SetPolling&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IsTemporary&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | Set the polling parameters.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;IsTemporary&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then these polling settings will be lost when the LuaUPnP engine is reloaded.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollingEnabled&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayInitial&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayDeadTime&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollMinDelay&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SendData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Sends the Z-Wave &amp;lt;code&amp;gt;Data&amp;lt;/code&amp;gt; to the Z-Wave &amp;lt;code&amp;gt;Node&amp;lt;/code&amp;gt;.&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
1. Set parameter 29 to &amp;quot;3&amp;quot; on node 15:&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=15&amp;amp;Data=x70%204%2029%201%203&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=15, Data=&amp;quot;x70 4 29 1 3&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Turn on a light (node 7):&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=7&amp;amp;Data=x20%201%20xFF&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=7, Data=&amp;quot;x20 1 xFF&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SimulateIncomingData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Calls the Z-Wave message handler for the given data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USBUIRT1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:USBUIRT1&lt;br /&gt;
*'''File''': S_USBUIRT.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the USB port the UIRT is connected to. On Vera Lite this is &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Camera1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Camera1&lt;br /&gt;
*'''File''': S_Camera1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VideoURLs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable defines the streaming parameters, and without it streaming doesn't work. This variable has this structure:&lt;br /&gt;
&amp;lt;tt&amp;gt;Info1:URL1:Info2:URL2:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt; parameters are:&lt;br /&gt;
&lt;br /&gt;
1. The protocol: can be &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. HTTP authentication required: 1 = yes, send the username and password in the request, 0 = no, don't send the username and password&lt;br /&gt;
&lt;br /&gt;
3. Video codec: &amp;lt;tt&amp;gt;mpeg4&amp;lt;/tt&amp;gt; &amp;amp;#124; &amp;lt;tt&amp;gt;mjpeg&amp;lt;/tt&amp;gt; &amp;amp;#124; etc.&lt;br /&gt;
&lt;br /&gt;
4. Audio codec: blank = no audio&lt;br /&gt;
&lt;br /&gt;
5. Resolution: &amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt; = thumbnail, &amp;lt;tt&amp;gt;s&amp;lt;/tt&amp;gt; = small, &amp;lt;tt&amp;gt;m&amp;lt;/tt&amp;gt; = medium, &amp;lt;tt&amp;gt;l&amp;lt;/tt&amp;gt; = large&lt;br /&gt;
&lt;br /&gt;
6. Width: 640&lt;br /&gt;
&lt;br /&gt;
7. Height: 480&lt;br /&gt;
&lt;br /&gt;
8. Players: &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;, a string of characters indicating known good players. &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt; = Quicktime plugin, &amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt; = Android, &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; = iPhone, &amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt; = normal web browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; is the streaming URL compatible with the players specified in &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Currently only the &amp;lt;tt&amp;gt;protocol&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;HTTP auth&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;players&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; parameters are used. The rest of the parameters are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;VideoURLs&amp;lt;/tt&amp;gt; example for VistaCam:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;rtsp,0,mpeg4,,m,640,480,qai:img/media.sav:http,0,mjpeg,,m,640,480,w:img/video.mjpeg:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the URL to get a snapshot from the camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RingBuffer&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable contains the ring buffer parameters.&lt;br /&gt;
The format is: &amp;lt;code&amp;gt;Enabled,BufferSeconds,NumFramesToPurge,Format,URL&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt; can be '''0''' or '''1'''. If it's '''1''', the ring buffer is enabled.&lt;br /&gt;
*&amp;lt;code&amp;gt;BufferSeconds&amp;lt;/code&amp;gt;: how many seconds of video to keep in the buffer. This is limited by the available memory on Vera. Setting this to a large value will cause instability.&lt;br /&gt;
*&amp;lt;code&amp;gt;NumFramesToPurge&amp;lt;/code&amp;gt;: how many frames to wait before attempting to purge.&lt;br /&gt;
*&amp;lt;code&amp;gt;Format&amp;lt;/code&amp;gt; can be '''2'''=MJPEG, '''3'''=MP4.&lt;br /&gt;
*&amp;lt;code&amp;gt;URL&amp;lt;/code&amp;gt; is the streaming URL.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedSensors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: archive a photo whenever one of the sensors is tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SensorArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many seconds to archive the video after the sensor(s) are tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedLights&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: which lights should be turned on when viewing this camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightOptions&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When to turn on the lights:&lt;br /&gt;
*&amp;lt;tt&amp;gt;V&amp;lt;/tt&amp;gt;: when I view the camera from the web or phone;&lt;br /&gt;
*&amp;lt;tt&amp;gt;S&amp;lt;/tt&amp;gt;: when the sensor(s) above are tripped and they are armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;: when the sensors above are tripped and they are *not* armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;: when you take an automatic picture for the archive;&lt;br /&gt;
&lt;br /&gt;
So &amp;lt;tt&amp;gt;VSBA&amp;lt;/tt&amp;gt; means do them all.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Archives a picture from the camera every this number of seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchivePreserveDays&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many days to keep the pictures in the archive.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Streams&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains a list separated by semicolons, where each element in the list has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;stream type&amp;amp;gt;,&amp;amp;lt;protocol&amp;amp;gt;,&amp;amp;lt;url&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The ''stream types'' currently supported are: &amp;lt;tt&amp;gt;flv&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;flv_low&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp_low&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The types with the &amp;quot;_low&amp;quot; suffix are the low bandwidth versions, and are used when streaming through the relay servers.&lt;br /&gt;
&lt;br /&gt;
*The supported ''protocols'' are: &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;flv,http,/img/media.flv;rtsp,rtsp,/img/media.sav;flv_low,http,/img/media.flv?stream=2;rtsp_low,rtsp,/img/media.sav?stream=2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PanTiltZoom1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:PanTiltZoom1&lt;br /&gt;
*'''File''': S_PanTiltZoom1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveLeft&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveRight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveUp&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveDown&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomIn&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomOut&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | GoToPreset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | presetNumber&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Moves the camera to the given preset.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SwitchPower1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:SwitchPower1&lt;br /&gt;
*'''File''': S_SwitchPower1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target state of the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The current state of the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target state of the device. Used to turn a device On or Off.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WindowCovering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:WindowCovering1&lt;br /&gt;
*'''File''': S_WindowCovering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Up&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Down&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stop&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dimming1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:Dimming1&lt;br /&gt;
*'''File''': S_Dimming1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target dimming value; it doesn't represent the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TurnOnBeforeDim&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicates that this device needs to turn on before setting the dimming level.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowZeroLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This device allows to set 0% level in ON state.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetLoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newLoadlevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired dimming level. Used to adjust the dimming level of a device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DoorLock1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:DoorLock1&lt;br /&gt;
*'''File''': S_DoorLock1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the target (desired) door state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current door state. &amp;quot;1&amp;quot; = locked, &amp;quot;0&amp;quot; = unlocked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of PIN codes.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=2&amp;gt;user_code_id,active,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=3&amp;gt;next_available_user_code_id\t&lt;br /&gt;
 user_code_id,active,date_added,date_used,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;VERSION&amp;lt;/tt&amp;gt; is used to track syntax changes.&lt;br /&gt;
*&amp;lt;tt&amp;gt;active&amp;lt;/tt&amp;gt; can be one of the following values:&lt;br /&gt;
**&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; = The code isn't programmed.&lt;br /&gt;
**&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''doesn't''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''does''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = The code is programmed into the lock and will be removed by software later.&lt;br /&gt;
**&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = The code is not programmed into the lock, but it will be programmed later by the software.&lt;br /&gt;
**&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt; = The code is programmed into the lock which supports hardware-based scheduling and will enable/disable it automatically.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid&amp;lt;/tt&amp;gt; is an auto-incrementing number.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid_lock&amp;lt;/tt&amp;gt; is the ID in the lock.&lt;br /&gt;
*The restriction type: '''&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;''' (''weekly'') or '''&amp;lt;tt&amp;gt;d&amp;lt;/tt&amp;gt;''' (''daily repeating'') = day of week based, '''&amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt;''' = time based (''yearly'')&lt;br /&gt;
*&amp;lt;tt&amp;gt;[d&amp;amp;#124;s]&amp;lt;/tt&amp;gt;: internal stuff.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumSchedules&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Maximum number of restrictions supported by the door lock.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 max_weekly,max_yearly,max_daily_repeating&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_weekly&amp;lt;/tt&amp;gt; is the number of weekly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_yearly&amp;lt;/tt&amp;gt; is the number of yearly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_daily_repeating&amp;lt;/tt&amp;gt; is the number of daily repeating restrictions slots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MinPinSize ''and'' MaxPinSize&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The minimum and maximum number of digits of the PIN code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowedPinChars&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Which characters are allowed in a PIN code.&lt;br /&gt;
The only format which is currently supported is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;-D&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
* D&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; is the smallest digit allowed;&lt;br /&gt;
* D&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; is the largest digit allowed.&lt;br /&gt;
Example: &amp;lt;code&amp;gt;2-7&amp;lt;/code&amp;gt; : allow only digits &amp;gt;= 2 and &amp;lt;= 7.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the last used PIN code:&lt;br /&gt;
 UserID=&amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot; UserName=&amp;quot;&amp;lt;pin_code_name&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_PinFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This becomes &amp;quot;1&amp;quot; when a bad PIN code is entered.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_CodeChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockButton&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the Lock button has been pressed on the lock keypad.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the lock fails to operate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UnauthUser&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the user code was entered outside of a valid date.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_VeryLowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is very low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UsesPinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;0&amp;quot;, this door lock doesn't use PIN codes. (e.g. Danalock)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target (desired) state of the door. Used to lock and unlock the door.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCodeName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Adds a PIN code. This code will be added to the &amp;lt;code&amp;gt;PinCodes&amp;lt;/code&amp;gt; variable and to the door lock.&lt;br /&gt;
*&amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; is the PIN code name.&lt;br /&gt;
*&amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; is the new PIN code.&lt;br /&gt;
*&amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; is the PIN code slot number.&lt;br /&gt;
*&amp;lt;code&amp;gt;purge&amp;lt;/code&amp;gt;: if this is '''&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;''', all the schedules programmed into the door lock will be removed.&lt;br /&gt;
*&amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is a json that looks like this:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;user_code&amp;quot;&amp;amp;nbsp;: {&lt;br /&gt;
      &amp;quot;slot&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot;,        // Used when adding/updating a PIN code.&lt;br /&gt;
      &amp;quot;name&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;name&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;code&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_code&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;user&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;restriction_slot&amp;gt;&amp;quot; // Used when adding/updating restrictions.&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;weekly_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;136&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;12:34&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;23:45&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;25&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;13:46&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;21:09&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;daily_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
**''&amp;lt;tt&amp;gt;slot&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;If the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; parameter is present, &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; The parameters from &amp;lt;code&amp;gt;SetPinValidityDate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SetPinValidityWeekly&amp;lt;/code&amp;gt; are also accepted. Internally, this action calls the implementation functions of those actions if &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;, respectively &amp;lt;code&amp;gt;DayOfWeek&amp;lt;/code&amp;gt; parameters are given. The parameters in the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; take precedence over the other parameters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | user&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | purge&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | json&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityDate&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityWeekly&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetPinValidityDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Sets the daily time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartDate&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;StopDate&amp;lt;/tt&amp;gt; are strings representing the dates, formatted like this: &amp;lt;tt&amp;gt;YYYY-MM-DD HH:MM:SS&amp;lt;/tt&amp;gt; (SQL DATETIME)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityDate&amp;amp;UserCode=1&amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityDate&amp;amp;amp;UserCode=1&amp;amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPinValidityWeekly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Sets the weekly time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DayOfWeek&amp;lt;/tt&amp;gt; contains the days of week numbers when the PIN code is restricted. Monday is '&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;' and Sunday is '&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;'.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;tt&amp;gt;1367&amp;lt;/tt&amp;gt; means Monday, Wednesday, Saturday and Sunday.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartHour&amp;lt;/tt&amp;gt; is the hour the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartMinute&amp;lt;/tt&amp;gt; is the minute the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopHour&amp;lt;/tt&amp;gt; is the hour the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopMinute&amp;lt;/tt&amp;gt; is the minute the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityWeekly&amp;amp;UserCode=1&amp;amp;DayOfWeek=1367&amp;amp;StartHour=15&amp;amp;StartMinute=31&amp;amp;StopHour=16&amp;amp;StopMinute=42&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityWeekly&amp;amp;amp;UserCode=1&amp;amp;amp;DayOfWeek=1367&amp;amp;amp;StartHour=15&amp;amp;amp;StartMinute=31&amp;amp;amp;StopHour=16&amp;amp;amp;StopMinute=42&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DayOfWeek&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ClearPinValidity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Clears the given restriction slot.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;slotID&amp;lt;/tt&amp;gt; is the restriction slot number. The starting slot number is 1.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | slotID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ClearPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Removes the PIN code from slot &amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== HVAC_UserOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_UserOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_UserOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired operating mode of the HVAC. Currently MiOS supports only:&lt;br /&gt;
*Off&lt;br /&gt;
*HeatOn&lt;br /&gt;
*CoolOn&lt;br /&gt;
*AutoChangeOver&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual operating mode of the HVAC.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired energy mode. Can be &amp;lt;tt&amp;gt;Normal&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;EnergySavingsMode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual energy mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, and if 0, the thermostat doesn't support auto mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired HVAC operating mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetEnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired energy mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_OperatingState1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HVAC_OperatingState1&lt;br /&gt;
*'''File''': S_HVAC_OperatingState1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents what the HVAC is actually doing right now. The most common actions are:&lt;br /&gt;
*Idle&lt;br /&gt;
*Heating&lt;br /&gt;
*Cooling&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_FanOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_FanOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_FanOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The fan operation mode. Can be:&lt;br /&gt;
*Auto&lt;br /&gt;
*ContinuousOn&lt;br /&gt;
*PeriodicOn&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FanStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current fan state; can be ''On'' or ''Off''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the fan operating mode. Changes the Mode variable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TemperatureSetpoint1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSetpoint1&lt;br /&gt;
*'''File''': S_TemperatureSetpoint1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetpointTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllSetpoints&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma separated list containing the current setpoints for the following thermostat modes: heat, cool, auto.&lt;br /&gt;
Format: &amp;lt;code&amp;gt;HEAT,COOL,AUTO&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;AllSetpoints = 72,74,73&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*72 = heating setpoint&lt;br /&gt;
*74 = cooling setpoint&lt;br /&gt;
*73 = auto mode setpoint&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, the thermostat doesn't support auto setpoint, so set heat+cool this many degrees +/-&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReportMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | char&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;quot;M&amp;quot; = The report correspond to the current mode of operation and should update the setpoint in the received mode (default),&lt;br /&gt;
&amp;quot;S&amp;quot; = The report correspond to the current operating state and should update the setpoint in the current mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Range&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reject setpoint change commands whose setpoint is outside the specified range.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where each range has this format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,C&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;/F&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,F&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The range limits are inclusive, meaning the new setpoint must be &amp;gt;= X&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;lt;= X&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;14,34/58,92;16,44/60,112;-1,32/30,90&amp;lt;/code&amp;gt;&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt; = 14,34/58,92: this means that the '''auto''' setpoint must be between 14 and 34 if it's in Celsius, and between 58 and 92 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt; = 16,44/60,112: this means that the '''cool''' setpoint must be between 16 and 44 if it's in Celsius, and between 60 and 112 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt; = -1,32/30,90: this means that the '''heat''' setpoint must be between -1 and 32 if it's in Celsius, and between 30 and 90 if it's in Fahrenheit.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target setpoint.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TemperatureSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSensor1&lt;br /&gt;
*'''File''': S_TemperatureSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentTemperature&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GenericSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:GenericSensor1&lt;br /&gt;
*'''File''': S_GenericSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LightSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:LightSensor1&lt;br /&gt;
*'''File''': S_LightSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HumiditySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HumiditySensor1&lt;br /&gt;
*'''File''': S_HumiditySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SecuritySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SecuritySensor1&lt;br /&gt;
*'''File''': S_SecuritySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Tripped&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used by MiOS as a way to disable sending notifications when a sensor is tripped/untripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the UNIX time when the sensor last reported that it was tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreTripTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used to filter trip events, the value specify the time in seconds of the filter, internally it will record the last event and after the time has elapsed it will set the variable Tripped to the last known event recorded.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoUntrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used for those devices that doesn't send the Untrip command and requires to automatically untrip after certain time. The value correspond to the time in seconds that the controller will set the Tripped variable to 0 after a Trip event. To disable this feature, set the variable to 0 or remove it from the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetArmed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newArmedValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Arms or disarms the sensor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EnergyMetering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:EnergyMetering1&lt;br /&gt;
*'''File''': S_EnergyMetering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Watts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If the device can report its wattage, this is the value reported by the device, otherwise this is the value supplied by the user in &amp;lt;tt&amp;gt;UserSupliedWattage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Pulse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserSuppliedWattage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | See &amp;lt;tt&amp;gt;Watts&amp;lt;/tt&amp;gt;.&lt;br /&gt;
'''Note:''' For thermostats, &amp;lt;tt&amp;gt;UserSuppliedWattage&amp;lt;/tt&amp;gt; consists of 3 numbers separated by commas. The default is 1500,1500,300. The first number is how many watts are used when the thermostat is in 'heat' mode; the second is how many watts are used when the thermostat is in 'cool' mode; and the third number is for the 'fan only' mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | KWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Log&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of values:&lt;br /&gt;
&amp;lt;code&amp;gt;CurrentConsumption,Average,Peak,LastReading,Seconds&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*''LastReading'' is the Unix time.&lt;br /&gt;
*''Seconds'' is the period of time the ''Average'' value was computed for.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ResetKWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrTransmitter1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrTransmitter1&lt;br /&gt;
*'''File''': S_IrTransmitter1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SendProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sends the given IR code.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SerialPort1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-org:serviceId:SerialPort1&lt;br /&gt;
*'''File''': S_SerialPort1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | path&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the serial port. On Vera Lite it's &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | baud&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The baud rate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | stopbits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of stop bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | databits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of data bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | parity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Can be &amp;lt;tt&amp;gt;odd&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;even&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SceneController1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneController1&lt;br /&gt;
*'''File''': S_SceneController1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneActivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the activated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneDeactivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the deactivated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scenes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The scene ID (as reported by the scene controller) of the last activated or deactivated scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the scene was last activated or deactivated.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManageLeds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, automatically turn on/off the scene indicator lights.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumButtons&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;NumberOfButtons[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,etc.]]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*'''ButtonNumber''' must be from 1 to ''NumberOfButtons''.&lt;br /&gt;
*'''AssociationNumber''' is the association group.&lt;br /&gt;
*'''SceneNumber''' is an event ID, and it's sent instead of the one we program.&lt;br /&gt;
*'''ButtonName''' is the user friendly name of the button.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2,1-1-1=Tap Button,2-2-2=Hold Button&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ButtonMapping&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;OldButtonNumber-Attribute-NewButtonNumber[,OldButtonNumber-Attribute-NewButtonNumber[,etc.]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where '''Attribute''' has the following meaning:&lt;br /&gt;
&lt;br /&gt;
*0 = Key pressed&lt;br /&gt;
*1 = Key is released, sent only as a termination of a Key Held Down sequence&lt;br /&gt;
*2 = Key held down&lt;br /&gt;
*3 = Key double tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
*4 = Key triple tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; These attributes were added in COMMAND_CLASS_CENTRAL_SCENE V2, so it's not available on all the scene controllers.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1-0-1,1-3-2,2-0-3,2-3-4,3-0-5,3-3-6,4-0-7,4-3-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneShortcuts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FiresOffEvents&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ActivationMethod&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave stuff.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SceneControllerLED1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneControllerLED1&lt;br /&gt;
*'''File''': S_SceneControllerLED1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The lights' state. The lower 4 bits of &amp;lt;tt&amp;gt;LightSettings&amp;lt;/tt&amp;gt; are the 4 green LEDs, and the upper 4 are the 4 red LEDs. So, 10001 is an orange light, 110010 is an orange light and a red, etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SetLight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Change a light's state.&lt;br /&gt;
*&amp;lt;tt&amp;gt;newValue&amp;lt;/tt&amp;gt; is the new light state. The valid values are:&lt;br /&gt;
**0 = off&lt;br /&gt;
**1 = green&lt;br /&gt;
**2 = red&lt;br /&gt;
**3 = orange&lt;br /&gt;
*&amp;lt;tt&amp;gt;Indicator&amp;lt;/tt&amp;gt; is the button number.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicator&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrDevice1&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrDevice1&lt;br /&gt;
*'''File''': S_IrDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codesets&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | SendCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Button&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Repeat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Color1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Color1&lt;br /&gt;
*'''File''': S_Color1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Variable&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| CurrentColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| TargetColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ColorMode&lt;br /&gt;
| string&lt;br /&gt;
| Currently used only for Revogi.&lt;br /&gt;
Can have only 2 values:&lt;br /&gt;
*0 = Colorful mode&lt;br /&gt;
*1 = Color temperature mode&lt;br /&gt;
|-&lt;br /&gt;
| ColorChannelPriorities&lt;br /&gt;
| string&lt;br /&gt;
| Specify the color channel priorities like this:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;gt;1&amp;gt;2,3,4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That value can be interpretted like this: channel 0 has priority over channel 1, which has priority over channels 2, 3 and 4.&lt;br /&gt;
|-&lt;br /&gt;
| SupportedColors&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Device_Categories</id>
		<title>Luup Device Categories</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Device_Categories"/>
				<updated>2017-10-17T12:20:21Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Device categories and subcategories mapping.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category&lt;br /&gt;
! Device Type&lt;br /&gt;
! Subcategory&lt;br /&gt;
! Device Type&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Dimmable Light&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Bulb&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Plugged&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Colored&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | Switch&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Exterior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Refrigerator&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| Garage Door&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Doorbell&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Valve&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Security Sensor&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Door Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Leak Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Motion Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Smoke Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| CO Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Glass Break Sensor&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | HVAC&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Heater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Custom HVAC&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Camera&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Indoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Outdoor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Doorbell&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Door Lock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 8&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Window Covering&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Window Covering&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| ZRTSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 9&lt;br /&gt;
| Remote Control&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 10&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | IR Transmitter&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| IR Transmitter&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| USB UIRT&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 11&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Generic I/O&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Generic I/O&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Repeater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 12&lt;br /&gt;
| Generic Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 13&lt;br /&gt;
| Serial Port&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 14&lt;br /&gt;
| Scene Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 15&lt;br /&gt;
| A/V&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 16&lt;br /&gt;
| Humidity Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 17&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 18&lt;br /&gt;
| Light Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 19&lt;br /&gt;
| Z-Wave Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 20&lt;br /&gt;
| Insteon Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 21&lt;br /&gt;
| Power Meter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 22&lt;br /&gt;
| Alarm Panel&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 23&lt;br /&gt;
| Alarm Partition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 24&lt;br /&gt;
| Siren&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 25&lt;br /&gt;
| Weather&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 26&lt;br /&gt;
| Philips Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 27&lt;br /&gt;
| Appliance&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 28&lt;br /&gt;
| UV Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 29&lt;br /&gt;
| Mouse Trap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions</id>
		<title>Luup UPnP Variables and Actions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions"/>
				<updated>2017-08-30T09:13:35Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* DoorLock1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all the UPnP actions and variables used by MiOS.&lt;br /&gt;
&lt;br /&gt;
Some actions and variables have self-explanatory names, so there's a dash ('-') instead of the description.&lt;br /&gt;
&lt;br /&gt;
== HomeAutomationGateway1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HomeAutomationGateway1&lt;br /&gt;
*'''File''': S_HomeAutomationGateway1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataVersion&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A number that increases each time the data changes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Unique Device Name of the UPnP device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload the LuaUPnP engine.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ModifyUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | inUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Make changes to the UserData.&lt;br /&gt;
*&amp;lt;tt&amp;gt;inUserData&amp;lt;/tt&amp;gt; is the new UserData object which will be added to the UserData or will replace an existent UserData object.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DataFormat&amp;lt;/tt&amp;gt; must be ''json''.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is ''1'' the LuaUPnP engine will reload after the UserData is modified.&lt;br /&gt;
&lt;br /&gt;
For more information read the [[ModifyUserData]] page.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataFormat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Create or change the value of a variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; can be an UDN or a number.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Service&amp;lt;/tt&amp;gt; is the service ID of the variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Variable&amp;lt;/tt&amp;gt; is the variable name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Value&amp;lt;/tt&amp;gt; is the new variable value.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Service&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Variable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | RunScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Run the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SceneOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Turn off all the devices from DEVICE_CATEGORY_DIMMABLE_LIGHT and DEVICE_CATEGORY_SWITCH from the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | RunLua&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Run the given Lua code. If &amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; is specified, the code is run using that device's interface.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Code&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | CreateDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | deviceType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | Create a device using the given parameters.&lt;br /&gt;
*&amp;lt;tt&amp;gt;deviceType&amp;lt;/tt&amp;gt; is the UPnP device type.&lt;br /&gt;
*&amp;lt;tt&amp;gt;internalID&amp;lt;/tt&amp;gt; is the specific ID (also known as ''altid'') of the device; for example, for Z-Wave devices this is the Node ID, and for Insteon device it is the Insteon ID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Description&amp;lt;/tt&amp;gt; is the device name, which is shown to the user on the dashboard.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpDevFilename&amp;lt;/tt&amp;gt; is the UPnP device description file name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpImplFilename&amp;lt;/tt&amp;gt; is the implementation file to use.&lt;br /&gt;
*If the device is IP based, &amp;lt;tt&amp;gt;IpAddress&amp;lt;/tt&amp;gt; is the IP address and port of the device.&lt;br /&gt;
*If this should be the child of another device, &amp;lt;tt&amp;gt;DeviceNumParent&amp;lt;/tt&amp;gt; is the device number of the parent device.&lt;br /&gt;
*&amp;lt;tt&amp;gt;RoomNum&amp;lt;/tt&amp;gt; is the number of the room the device will be in.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; tells the device which plugin to use. The plugin will be installed automatically if it's not already installed.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; is a string containing the variables you want set when the device is created. You can specify multiple variables by separating them with a line feed ('\n'), and use ',' and '=' to separate service, variable and value, like this: &amp;lt;tt&amp;gt;service,variable=value\nservice,variable=value\n&amp;lt;/tt&amp;gt;...&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is '''1''', the Luup engine will be restarted after the device is created.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | internalID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpDevFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpImplFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Username&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Password&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNumParent&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | DeleteDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Delete the device given either through its number, or through its UDN.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | CreatePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Create a plugin with the &amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; number and &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; version. &amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; are the variables that will be set when the device is created. For more information look at the description of the '''CreateDevice''' action above.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Version&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DeletePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Uninstall the given plugin.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | CreatePluginDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Creates a device for plugin #&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ImportUpnpDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | LogIpRequest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetHouseMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Changes the house mode.&lt;br /&gt;
&amp;lt;tt&amp;gt;Mode&amp;lt;/tt&amp;gt; can be:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = Home&lt;br /&gt;
*&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = Away&lt;br /&gt;
*&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = Night&lt;br /&gt;
*&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = Vacation&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HaDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HaDevice1&lt;br /&gt;
*'''File''': S_HaDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CommFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is set to ''1'' if we've lost communication with the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The configuration state of the device:&lt;br /&gt;
*-3 = Configuration failed&lt;br /&gt;
*-2 = Configuration in progress&lt;br /&gt;
*-1 = Device waiting to be configured&lt;br /&gt;
*0 = Device not configured&lt;br /&gt;
*1 = Device successfully configured&lt;br /&gt;
*2 = Device partially configured&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoConfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically check the routing info for this every 12 hours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The battery level reported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the &amp;lt;tt&amp;gt;BatteryLevel&amp;lt;/tt&amp;gt; was reported.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeCheck&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Only for devices that are capable of implementing time, this is when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeOffset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | For &amp;lt;tt&amp;gt;LastTimeCheck&amp;lt;/tt&amp;gt;, this is the timezone offset from UTC when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device information was last updated. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FirstConfigured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device was first configured. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreRoom&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used only by the MiOS scene controller. Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Commands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of &amp;lt;tt&amp;gt;ControlCodes&amp;lt;/tt&amp;gt; for the enabled UI controls. If the &amp;lt;tt&amp;gt;ControlCode&amp;lt;/tt&amp;gt; of an UI control (e.g. button) is not in this list, the button will be disabled (greyed out). If this variable is missing, all controls will be enabled. If this variable is empty, all controls will be disabled.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IODevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The device number to connect to for IO. (this is on the master device)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IOPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The port to receive connections on from &amp;lt;tt&amp;gt;IODevice&amp;lt;/tt&amp;gt;. (this is on the serial port)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReverseOnOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, the commands for some devices are reversed (e.g. the On command will turn the device Off, and vice versa). Not all devices support this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_Alarm&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Currently used only by the water leak sensor, contains the alarm code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeSetting&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains the state of the device for each house mode.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;&amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;...&lt;br /&gt;
&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is empty, the sensor is disarmed/bypassed.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is &amp;quot;A&amp;quot;, the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1:;2:A;3:A;4:A&lt;br /&gt;
&lt;br /&gt;
*In &amp;lt;tt&amp;gt;Home&amp;lt;/tt&amp;gt;(1) mode the sensor is disarmed;&lt;br /&gt;
*in &amp;lt;tt&amp;gt;Away&amp;lt;/tt&amp;gt;(2), &amp;lt;tt&amp;gt;Night&amp;lt;/tt&amp;gt;(3) and &amp;lt;tt&amp;gt;Vacation&amp;lt;/tt&amp;gt;(4) modes the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Children&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of KitDevice numbers.&lt;br /&gt;
LuaUPnP will create a child device for every item in the list, with the specified KitDevice properties.&lt;br /&gt;
&lt;br /&gt;
Can be used to add children to devices which don't have MultiChannel support.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the polls are doing, where 5.0 means that the last 50 polls were successful and 0.0 means that all the last 50 polls were unsuccessful.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the wakeups are being received, where 5.0 means that the we received the last 50 wakeups when they have suppose to be sent and 0.0 means that we didn't receive any of the 50 last wakeups that the device should have sent&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''See the description of this variable in ZWaveDevice1 section, because it should belong to the service urn:micasaverde-com:serviceId:ZWaveDevice1, but it was kept in urn:micasaverde-com:serviceId:HaDevice1 to maintain backward compatibility.'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeConfiguration&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Implementation of custom preset modes for any device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;[&amp;amp;#124;&amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;upnp_action&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;service&amp;amp;gt;/&amp;amp;lt;action&amp;amp;gt;/&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;[&amp;amp;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the value is '?', it means that it's a wildcard and the ''ModeSettings'' variable should contain a comma separated list of values in order to substitute this '?' wildcard. If the value is not '?', then the value is fixed and it should be URL encoded.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 h;h code;urn:upnp-org:serviceId:SwitchPower1/SetTarget/newTargetValue=?&amp;amp;otherParameter=45&amp;amp;another=?&amp;amp;#124;s;s code;urn:upnp-org:serviceId:Dimming1/SetTargetLevel/newLevel=34&amp;amp;other=?&amp;amp;another=4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeControls&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used to tell the UI what controls to show in the House modes configuration page for the actions in the ''CustomModeConfiguration'' variable.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;;&amp;lt;control info for arg #2&amp;gt;;..;&amp;lt;control info for arg #N&amp;gt;[&amp;amp;#124;&amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | StressTest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stress test the Z-Wave device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove the device from the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ToggleState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Toggle the state of the device (e.g. if the device it's Off, turns it On). The device must have a binary state (On/Off, Locked/Unlocked, etc.).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ZWaveDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveDevice1&lt;br /&gt;
*'''File''': S_ZWaveDevice1.xml ''(nonexistent)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the polling frequency for a node (i.e. the minimum number of seconds between two poll commands to the same node). If this variable doesn't exist or is blank, the default polling frequency set in the &amp;lt;tt&amp;gt;ZWaveNetwork1&amp;lt;/tt&amp;gt;'s &amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt; variable will be used. If it's '''0''', polling will be disabled for this node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollCommands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of command classes/commands to poll. '&amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt;' means the device won't respond to any poll.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChEndpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Neighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbor devices' node IDs. '1' is the Vera's node ID.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NeighborsInverse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbors that see us.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Capabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The first 6 numbers in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are what is reported by the &amp;lt;tt&amp;gt;ZW_GetNodeProtocolInfo&amp;lt;/tt&amp;gt; function: Capability, Security, Reserved, Basic Device Class [, Generic Device Class, Specific Device Class]. If the &amp;lt;tt&amp;gt;Capability&amp;lt;/tt&amp;gt; is &amp;gt;= 128, then the device listens for commands, otherwise it's a battery operated device that only wakes up occasionally. After the '&amp;amp;#124;' in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are the command classes supported. More information here: [[ZWave Command Classes]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SecurityFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't talk to this node with security even if the node reports it can.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastReset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When we last reset the node association. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How often this battery operated device should wake up to report its status. The default value is 1800 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredWakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The wakeup interval already configured on the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastWakeup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device last woke up and reported its status. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastRouteUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device's routing information was last checked/updated. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Health&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A rating from 0-5. A large number means that MiOS can communicate with it easily.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HealthDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The date the rating was assigned. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings read from the device.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number,variable1_value,variable2_number,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings set by the user.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number-variable1_description,variable1_data_type,variable1_value,variable2_number-variable2_description,variable2_data_type,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This are the association settings read from the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave associations for a device are stored in this variable.&lt;br /&gt;
The associations are delimited by ';', 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 IDs, not device IDs (ie the 'altid' in the UI). If the node ID is 'z', it means the node ID of the device for which the variable is set.&lt;br /&gt;
&lt;br /&gt;
For multi-channel there is a '.' following the node ID with the endpoint ID.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1,3.4,7;2,5.1,8&lt;br /&gt;
&lt;br /&gt;
Means group #1 is associated with node #3 endpoint #4 and with node #7, which is non-multi-channel; group #2 is associated with node #5 endpoint #1, and with node #8.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of association groups supported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NonceACK&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManufacturerInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device information. Format:&lt;br /&gt;
 ManufacturerID,ProductType,ProductID&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is what's reported by the COMMAND_CLASS_VERSION command VERSION_REPORT. There are 5 values: Z-Wave Library Type, Z-Wave Protocol Version, Z-Wave Protocol Sub Version, Application Version, Application Sub Version. The &amp;lt;tt&amp;gt;Application Version&amp;lt;/tt&amp;gt; is specific to the device and not defined by Z-Wave.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetPointInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of the supported setpoint types:&lt;br /&gt;
*&amp;lt;tt&amp;gt;H1&amp;lt;/tt&amp;gt; = Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C1&amp;lt;/tt&amp;gt; = Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;F1&amp;lt;/tt&amp;gt; = Furnace&lt;br /&gt;
*&amp;lt;tt&amp;gt;D1&amp;lt;/tt&amp;gt; = Dry Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;MA&amp;lt;/tt&amp;gt; = Moist Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;AC&amp;lt;/tt&amp;gt; = Auto changeover&lt;br /&gt;
*&amp;lt;tt&amp;gt;H2&amp;lt;/tt&amp;gt; = Energy Save Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C2&amp;lt;/tt&amp;gt; = Energy Save Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;AH&amp;lt;/tt&amp;gt; = Away Heating&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of the command classes supported by this device. (hexadecimal numbers)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InitialName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The name that was initially set when the node was first added.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified name when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;VariablesSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredAssoc&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;AssociationSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Documentation&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL of the documentation used on the ''Device Options'' page.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The meter type:&lt;br /&gt;
*1 = electric&lt;br /&gt;
*2 = gas&lt;br /&gt;
*3 = water&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A bit map of the supported meter scales.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | List of the supported alarm types.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollOk, PollTxFail, PollNoReply&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | These variables are incremented each time the last poll job has the status they describe. They are reset after each network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A route specified by the end-user. This is a '''dot'''-separated list of nodes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllRoutesFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when all the manual routes have failed.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This contains a list of various routes chosen by profilings.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 route1_node1.route1_node2...-route1_score[x],route2_node1.route2_node2...-route2_score[x],...&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;score&amp;lt;/tt&amp;gt; is a measure of latency and accuracy, the lower the number, the better. '&amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;' means that the last attempt to use this route failed, so it won't be used anymore.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreDirectScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SwitchMlSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BasicSetCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining actions for BASIC_SET messages.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Value&amp;gt;=&amp;lt;Action&amp;gt;&amp;lt;Endpoint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*Value &amp;amp;nbsp;: the BASIC_SET Value; if Value is &amp;quot;XX&amp;quot;, it means any value&lt;br /&gt;
*Action &amp;amp;nbsp;: the Action to perform; the supported values are: T&amp;lt;tt&amp;gt;=Trip&amp;lt;/tt&amp;gt;, U&amp;lt;tt&amp;gt;=Untrip&amp;lt;/tt&amp;gt;, O&amp;lt;tt&amp;gt;=On&amp;lt;/tt&amp;gt;, F&amp;lt;tt&amp;gt;=Off&amp;lt;/tt&amp;gt;, D&amp;lt;tt&amp;gt;=Dim&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Endpoint &amp;amp;nbsp;: the Endpoint device ID (altid); if Endpoint=0, it means the parent node, or the current node if the device has no children&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=Ue1,FF=Te1&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Untrip endpoint &amp;quot;e1&amp;quot;; if receive 0xFF, Trip endpoint &amp;quot;e1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;XX=D02&amp;lt;/code&amp;gt; =&amp;gt; Dim endpoint 02 to whatever value received&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=T0,FF=U0&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Trip the current node; if receive 0xFF, Untrip the current node&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SupportedMRTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining which meter report types are supported by the device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;;&amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*CC Hex &amp;amp;nbsp;: the Hex value of the command class (without 0x):&lt;br /&gt;
**0x31 for COMMAND_CLASS_SENSOR_MULTILEVEL&lt;br /&gt;
**0x32 for COMMAND_CLASS_METER&lt;br /&gt;
*Supported Type &amp;amp;nbsp;: The HEX value of the type supported for the Command class without 0x&lt;br /&gt;
**Supported types for COMMAND_CLASS_SENSOR_MULTILEVEL:&lt;br /&gt;
***Temperature = 0x01&lt;br /&gt;
***General = 0x02&lt;br /&gt;
***Luminance = 0x03&lt;br /&gt;
***Power = 0x04&lt;br /&gt;
***RelativeHumidity = 0x05&lt;br /&gt;
***Velocity = 0x06&lt;br /&gt;
***Direction = 0x07&lt;br /&gt;
***AtmosphericPressure = 0x08&lt;br /&gt;
***BarometricPressure = 0x09&lt;br /&gt;
***SolarRadiation = 0x0A&lt;br /&gt;
***DewPoint = 0x0B&lt;br /&gt;
***RainRate = 0x0C&lt;br /&gt;
***TideLevel = 0x0D&lt;br /&gt;
***Weight = 0x0E&lt;br /&gt;
***Voltage = 0x0F&lt;br /&gt;
***Current = 0x10&lt;br /&gt;
***CO2level = 0x11&lt;br /&gt;
***AirFlow = 0x12&lt;br /&gt;
***TankCapacity = 0x13&lt;br /&gt;
***Distance = 0x14&lt;br /&gt;
***SeismicIntensity = 0x19&lt;br /&gt;
***UltraViolet = 0x1B&lt;br /&gt;
&lt;br /&gt;
**Supported types for COMMAND_CLASS_METER:&lt;br /&gt;
***Electric=0x01&lt;br /&gt;
***Gas=0x02&lt;br /&gt;
***Water=0x03&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;31-0F,0E,10,1B;32-01,03&amp;lt;/code&amp;gt; =&amp;gt; Device supports Voltage, Weight, Current and UltraViolet for COMMAND_CLASS_SENSOR_MULTILEVEL and Electric and Water from COMMAND_CLASS_METER&lt;br /&gt;
&lt;br /&gt;
If the variable is empty it will be treated as support anything. If the variable does not contain a command class that command class will be treated as support everything.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NoChildren&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this variable is '''1''', delete the child devices, and don't allow the creation of other child devices, to avoid creating ghost devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''(NOTE: this is its new service. ''urn:micasaverde-com:serviceId:HaDevice1'' was left unchanged to mantain backward compatibility.)'''&lt;br /&gt;
Allows setting what each Alarm Type does for devices using COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION. The format is:&lt;br /&gt;
&lt;br /&gt;
 AlarmTypes:AlarmLevels:AlarmCode:Action;AlarmTypes:AlarmLevels:AlarmCode:Action&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmTypes&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;type1,type2-type3,!type4&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmLevels&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;00,01,05-20,!FF&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;SMOKE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAMPER_ALARM&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Action&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = don't update the ''Tripped'' variable, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = update the ''Tripped'' variable, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = ignore the message (i.e. don't update the ''sl_Alarm'' variable)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 01:FF:SMOKE:1;0C:FF::1;0D:FF:TAMPER_ALARM:0&lt;br /&gt;
&lt;br /&gt;
*if Alarm Type is ''0x01'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;SMOKE&amp;quot; and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0C'' and the Alarm Level is ''0xFF'', don't update the ''sl_Alarm'' variable, and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0D'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;TAMPER_ALARM&amp;quot;, but don't trip the sensor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypesV2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows customizing the handling of the COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION &amp;gt;= v2 messages.&lt;br /&gt;
The format is a ';' separated list of tokens. Format of each token:&lt;br /&gt;
&lt;br /&gt;
 TypesV1:LevelV1:NotificationStatus:NotificationType:Event:AlarmCode:TripValue&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;TypesV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1_v1,type2_v1-type3_v1,!type4_v1, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;LevelV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,02-05,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationStatus&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 01-FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationType&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1,type2-type3,!type4, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Event&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,03-5A,!04,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: SMOKE, CO, TAMPER_ALARM, etc. Leave empty if you don't want to set an alarm code.&lt;br /&gt;
*&amp;lt;tt&amp;gt;TripValue&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 0 = Untrip, 1 = Trip, C = don't update the Tripped variable (only the Alarm Code), X = Ignore&lt;br /&gt;
&lt;br /&gt;
If the TypeV1 or NotificationType are not XX and if there was no match, the function will try the next token.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGroups&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, associate ourselves only with these groups, not all groups. The groups should be given as a comma separated list, like this:&lt;br /&gt;
 1,3,4,255&lt;br /&gt;
&lt;br /&gt;
You could add this variable with a value = 0 if you want to be in NO association groups.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreCommandClass&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows ignoring specific command classes (CC) for that device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC #1&amp;gt;-&amp;lt;Command #1&amp;gt;,&amp;lt;Command #2&amp;gt;;&amp;lt;CC #2&amp;gt;-*;&amp;lt;CC #3&amp;gt;-&amp;lt;Command #1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Both the command classes and the commands are given by their hex code.&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; is used as an wild card indicating all commands.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 26-03,05;71-*;20-03&lt;br /&gt;
&lt;br /&gt;
That means: ignore CC 26 commands 03 and 05, all commands from CC 71, and CC 20 command 03.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TemperatureScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the thermostat setpoint.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;Precision,Scale,Size&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*Precision: The number of decimals&lt;br /&gt;
*Scale: 0 = Celsius, 1 = Fahrenheit&lt;br /&gt;
*Size: Size of the setpoint in bits: number of bits = 2&amp;lt;sup&amp;gt;2+''Size''&amp;lt;/sup&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Size || Number of bits&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 16&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 32&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ZWaveNetwork1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveNetwork1&lt;br /&gt;
*'''File''': S_ZWaveNetwork1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The status of the Z-Wave network:&lt;br /&gt;
*0 = Status not set&lt;br /&gt;
*1 = OK&lt;br /&gt;
*2 = Quiting&lt;br /&gt;
*3 = Waiting to quit&lt;br /&gt;
*4 = No dongle&lt;br /&gt;
*5 = Configuring: still running init/configure scripts&lt;br /&gt;
*6 = Failure&lt;br /&gt;
*7 = Initializing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusText&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Full Z-Wave network status description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastError&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The last Z-Wave error in the network&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the Z-Wave component of the LuaUPnP engine started.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastDongleBackup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave dongle backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastHeal&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Z-Wave version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The unique ID of the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Role&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave specific stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TO3066&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the port where MiOS will search for the Z-Wave dongle. On Vera Lite, this is &amp;lt;tt&amp;gt;/dev/ttyS0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LockComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't search for the Z-Wave dongle on the other available ports if it doesn't find it on &amp;lt;tt&amp;gt;ComPort&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Use45&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use Z-Wave version 3.20 instead of 2.78.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UseMR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use MiOS routing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LimitNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | With MiOS routing: if this is &amp;quot;1&amp;quot;, when the routing table is created, consider only Z-Wave's neighbors as valid options.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically poll the Z-Wave devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds after the LuaUPnP engine has (re-)started before the polling loop begins.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds MiOS must not have transmitted any non-poll command before the next poll command is sent.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds between poll commands.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Minimum number of seconds between poll commands to the same node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneIDs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used for scene controllers. This is a CSV where each item has this format: &amp;lt;tt&amp;gt;node#-button#=ZWaveSceneID&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ResetNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ResetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Reset the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ResetMode&amp;lt;/tt&amp;gt; can be &amp;quot;SIS&amp;quot; or &amp;quot;SUC&amp;quot;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;HomeID&amp;lt;/tt&amp;gt; is a 32 bit hex number representing the new HomeID. If this parameter doesn't exist or is 0, MiOS will generate the new HomeID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ZeroMemory&amp;lt;/tt&amp;gt;: if this is &amp;quot;1&amp;quot;, the memory will be zeroed before resetting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ZeroMemory&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | PutByte&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Used to convert Z-Wave from 2.78 to 3.20 in which case the &amp;lt;tt&amp;gt;StartAddress&amp;lt;/tt&amp;gt; parameter must be &amp;quot;convert502_452&amp;quot; and the rest are ignored.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ReconfigureAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FailedOnly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the Z-Wave nodes. If &amp;lt;tt&amp;gt;FailedOnly&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, only the devices that failed to configure are reconfigured.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Get network update from SUC/SIS.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Update the neighbor nodes of the given device. &amp;lt;tt&amp;gt;Device&amp;lt;/tt&amp;gt; is the device number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | BackupDongle&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Restore&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Backs up the Z-Wave network. The backup is in &amp;lt;tt&amp;gt;/etc/cmh/dongle.dump&amp;lt;/tt&amp;gt;. If &amp;lt;tt&amp;gt;Restore&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, the Z-Wave network is restored from the backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | PollAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | RemoveNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | Puts Vera in exclude mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the exclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be excluded. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in exclude mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit exclude mode after a node is excluded.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits exclude mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | AddNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Puts Vera in include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the inclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be included. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in include mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit include mode after a node is included.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ControllerShift&amp;lt;/tt&amp;gt; must be &amp;quot;0&amp;quot;.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PK_KitDevice&amp;lt;/tt&amp;gt; is the KitDevice number of the device we expect to be included.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ControllerShift&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PK_KitDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DownloadNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Copy the Z-Wave network from a master controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | HealNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryMinutes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Heals/consolidates the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt;: how many minutes to wait for battery operated devices to be discovered.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Node&amp;lt;/tt&amp;gt; is not blank, then only this node will be repaired.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt; is the number of cycles to stress test each node.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Configure&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then all the devices will be re-configured when done.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;ManualRoute&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then only update MiOS routing (overrides other settings).&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt; is the starting heal stage. The valid values are:&lt;br /&gt;
**1 = Request network update.&lt;br /&gt;
**2 = Request neighbor node update.&lt;br /&gt;
**3 = Update the routing tables and neighbor nodes.&lt;br /&gt;
**4 = Calculate the best routes.&lt;br /&gt;
**5 = Re-configure all nodes.&lt;br /&gt;
**6 = Wait &amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt; to request neighbor node update and configure all battery operated nodes.&lt;br /&gt;
**7 = Do a stress test for &amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopStage&amp;lt;/tt&amp;gt;: Same as &amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StressCycles&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | SetPolling&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IsTemporary&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | Set the polling parameters.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;IsTemporary&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then these polling settings will be lost when the LuaUPnP engine is reloaded.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollingEnabled&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayInitial&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayDeadTime&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollMinDelay&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SendData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Sends the Z-Wave &amp;lt;code&amp;gt;Data&amp;lt;/code&amp;gt; to the Z-Wave &amp;lt;code&amp;gt;Node&amp;lt;/code&amp;gt;.&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
1. Set parameter 29 to &amp;quot;3&amp;quot; on node 15:&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=15&amp;amp;Data=x70%204%2029%201%203&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=15, Data=&amp;quot;x70 4 29 1 3&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Turn on a light (node 7):&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=7&amp;amp;Data=x20%201%20xFF&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=7, Data=&amp;quot;x20 1 xFF&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SimulateIncomingData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Calls the Z-Wave message handler for the given data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USBUIRT1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:USBUIRT1&lt;br /&gt;
*'''File''': S_USBUIRT.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the USB port the UIRT is connected to. On Vera Lite this is &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Camera1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Camera1&lt;br /&gt;
*'''File''': S_Camera1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VideoURLs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable defines the streaming parameters, and without it streaming doesn't work. This variable has this structure:&lt;br /&gt;
&amp;lt;tt&amp;gt;Info1:URL1:Info2:URL2:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt; parameters are:&lt;br /&gt;
&lt;br /&gt;
1. The protocol: can be &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. HTTP authentication required: 1 = yes, send the username and password in the request, 0 = no, don't send the username and password&lt;br /&gt;
&lt;br /&gt;
3. Video codec: &amp;lt;tt&amp;gt;mpeg4&amp;lt;/tt&amp;gt; &amp;amp;#124; &amp;lt;tt&amp;gt;mjpeg&amp;lt;/tt&amp;gt; &amp;amp;#124; etc.&lt;br /&gt;
&lt;br /&gt;
4. Audio codec: blank = no audio&lt;br /&gt;
&lt;br /&gt;
5. Resolution: &amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt; = thumbnail, &amp;lt;tt&amp;gt;s&amp;lt;/tt&amp;gt; = small, &amp;lt;tt&amp;gt;m&amp;lt;/tt&amp;gt; = medium, &amp;lt;tt&amp;gt;l&amp;lt;/tt&amp;gt; = large&lt;br /&gt;
&lt;br /&gt;
6. Width: 640&lt;br /&gt;
&lt;br /&gt;
7. Height: 480&lt;br /&gt;
&lt;br /&gt;
8. Players: &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;, a string of characters indicating known good players. &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt; = Quicktime plugin, &amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt; = Android, &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; = iPhone, &amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt; = normal web browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; is the streaming URL compatible with the players specified in &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Currently only the &amp;lt;tt&amp;gt;protocol&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;HTTP auth&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;players&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; parameters are used. The rest of the parameters are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;VideoURLs&amp;lt;/tt&amp;gt; example for VistaCam:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;rtsp,0,mpeg4,,m,640,480,qai:img/media.sav:http,0,mjpeg,,m,640,480,w:img/video.mjpeg:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the URL to get a snapshot from the camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RingBuffer&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable contains the ring buffer parameters.&lt;br /&gt;
The format is: &amp;lt;code&amp;gt;Enabled,BufferSeconds,NumFramesToPurge,Format,URL&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt; can be '''0''' or '''1'''. If it's '''1''', the ring buffer is enabled.&lt;br /&gt;
*&amp;lt;code&amp;gt;BufferSeconds&amp;lt;/code&amp;gt;: how many seconds of video to keep in the buffer. This is limited by the available memory on Vera. Setting this to a large value will cause instability.&lt;br /&gt;
*&amp;lt;code&amp;gt;NumFramesToPurge&amp;lt;/code&amp;gt;: how many frames to wait before attempting to purge.&lt;br /&gt;
*&amp;lt;code&amp;gt;Format&amp;lt;/code&amp;gt; can be '''2'''=MJPEG, '''3'''=MP4.&lt;br /&gt;
*&amp;lt;code&amp;gt;URL&amp;lt;/code&amp;gt; is the streaming URL.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedSensors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: archive a photo whenever one of the sensors is tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SensorArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many seconds to archive the video after the sensor(s) are tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedLights&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: which lights should be turned on when viewing this camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightOptions&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When to turn on the lights:&lt;br /&gt;
*&amp;lt;tt&amp;gt;V&amp;lt;/tt&amp;gt;: when I view the camera from the web or phone;&lt;br /&gt;
*&amp;lt;tt&amp;gt;S&amp;lt;/tt&amp;gt;: when the sensor(s) above are tripped and they are armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;: when the sensors above are tripped and they are *not* armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;: when you take an automatic picture for the archive;&lt;br /&gt;
&lt;br /&gt;
So &amp;lt;tt&amp;gt;VSBA&amp;lt;/tt&amp;gt; means do them all.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Archives a picture from the camera every this number of seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchivePreserveDays&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many days to keep the pictures in the archive.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Streams&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains a list separated by semicolons, where each element in the list has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;stream type&amp;amp;gt;,&amp;amp;lt;protocol&amp;amp;gt;,&amp;amp;lt;url&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The ''stream types'' currently supported are: &amp;lt;tt&amp;gt;flv&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;flv_low&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp_low&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The types with the &amp;quot;_low&amp;quot; suffix are the low bandwidth versions, and are used when streaming through the relay servers.&lt;br /&gt;
&lt;br /&gt;
*The supported ''protocols'' are: &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;flv,http,/img/media.flv;rtsp,rtsp,/img/media.sav;flv_low,http,/img/media.flv?stream=2;rtsp_low,rtsp,/img/media.sav?stream=2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PanTiltZoom1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:PanTiltZoom1&lt;br /&gt;
*'''File''': S_PanTiltZoom1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveLeft&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveRight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveUp&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveDown&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomIn&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomOut&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | GoToPreset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | presetNumber&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Moves the camera to the given preset.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SwitchPower1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:SwitchPower1&lt;br /&gt;
*'''File''': S_SwitchPower1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target state of the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The current state of the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target state of the device. Used to turn a device On or Off.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WindowCovering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:WindowCovering1&lt;br /&gt;
*'''File''': S_WindowCovering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Up&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Down&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stop&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dimming1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:Dimming1&lt;br /&gt;
*'''File''': S_Dimming1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target dimming value; it doesn't represent the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TurnOnBeforeDim&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicates that this device needs to turn on before setting the dimming level.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowZeroLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This device allows to set 0% level in ON state.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetLoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newLoadlevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired dimming level. Used to adjust the dimming level of a device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DoorLock1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:DoorLock1&lt;br /&gt;
*'''File''': S_DoorLock1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the target (desired) door state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current door state. &amp;quot;1&amp;quot; = locked, &amp;quot;0&amp;quot; = unlocked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of PIN codes.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=2&amp;gt;user_code_id,active,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=3&amp;gt;next_available_user_code_id\t&lt;br /&gt;
 user_code_id,active,date_added,date_used,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;VERSION&amp;lt;/tt&amp;gt; is used to track syntax changes.&lt;br /&gt;
*&amp;lt;tt&amp;gt;active&amp;lt;/tt&amp;gt; can be one of the following values:&lt;br /&gt;
**&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; = The code isn't programmed.&lt;br /&gt;
**&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''doesn't''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''does''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = The code is programmed into the lock and will be removed by software later.&lt;br /&gt;
**&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = The code is not programmed into the lock, but it will be programmed later by the software.&lt;br /&gt;
**&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt; = The code is programmed into the lock which supports hardware-based scheduling and will enable/disable it automatically.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid&amp;lt;/tt&amp;gt; is an auto-incrementing number.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid_lock&amp;lt;/tt&amp;gt; is the ID in the lock.&lt;br /&gt;
*The restriction type: '''&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;''' (''weekly'') or '''&amp;lt;tt&amp;gt;d&amp;lt;/tt&amp;gt;''' (''daily repeating'') = day of week based, '''&amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt;''' = time based (''yearly'')&lt;br /&gt;
*&amp;lt;tt&amp;gt;[d&amp;amp;#124;s]&amp;lt;/tt&amp;gt;: internal stuff.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumSchedules&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Maximum number of restrictions supported by the door lock.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 max_weekly,max_yearly,max_daily_repeating&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_weekly&amp;lt;/tt&amp;gt; is the number of weekly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_yearly&amp;lt;/tt&amp;gt; is the number of yearly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_daily_repeating&amp;lt;/tt&amp;gt; is the number of daily repeating restrictions slots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MinPinSize ''and'' MaxPinSize&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The minimum and maximum number of digits of the PIN code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowedPinChars&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Which characters are allowed in a PIN code.&lt;br /&gt;
The only format which is currently supported is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;-D&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
* D&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; is the smallest digit allowed;&lt;br /&gt;
* D&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; is the largest digit allowed.&lt;br /&gt;
Example: &amp;lt;code&amp;gt;2-7&amp;lt;/code&amp;gt; : allow only digits &amp;gt;= 2 and &amp;lt;= 7.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the last used PIN code:&lt;br /&gt;
 UserID=&amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot; UserName=&amp;quot;&amp;lt;pin_code_name&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_PinFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This becomes &amp;quot;1&amp;quot; when a bad PIN code is entered.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_CodeChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockButton&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the Lock button has been pressed on the lock keypad.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the lock fails to operate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UnauthUser&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the user code was entered outside of a valid date.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_VeryLowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is very low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UsesPinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;0&amp;quot;, this door lock doesn't use PIN codes. (e.g. Danalock)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target (desired) state of the door. Used to lock and unlock the door.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCodeName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Adds a PIN code. This code will be added to the &amp;lt;code&amp;gt;PinCodes&amp;lt;/code&amp;gt; variable and to the door lock.&lt;br /&gt;
*&amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; is the PIN code name.&lt;br /&gt;
*&amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; is the new PIN code.&lt;br /&gt;
*&amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; is the PIN code slot number.&lt;br /&gt;
*&amp;lt;code&amp;gt;purge&amp;lt;/code&amp;gt;: if this is '''&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;''', all the schedules programmed into the door lock will be removed.&lt;br /&gt;
*&amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is a json that looks like this:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;user_code&amp;quot;&amp;amp;nbsp;: {&lt;br /&gt;
      &amp;quot;slot&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot;,        // Used when adding/updating a PIN code.&lt;br /&gt;
      &amp;quot;name&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;name&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;code&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_code&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;user&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;restriction_slot&amp;gt;&amp;quot; // Used when adding/updating restrictions.&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;weekly_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;136&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;12:34&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;23:45&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;25&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;13:46&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;21:09&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;daily_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
**''&amp;lt;tt&amp;gt;slot&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;If the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; parameter is present, &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; The parameters from &amp;lt;code&amp;gt;SetPinValidityDate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SetPinValidityWeekly&amp;lt;/code&amp;gt; are also accepted. Internally, this action calls the implementation functions of those actions if &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;, respectively &amp;lt;code&amp;gt;DayOfWeek&amp;lt;/code&amp;gt; parameters are given. The parameters in the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; take precedence over the other parameters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | user&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | purge&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | json&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityDate&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityWeekly&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetPinValidityDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Sets the daily time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartDate&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;StopDate&amp;lt;/tt&amp;gt; are strings representing the dates, formatted like this: &amp;lt;tt&amp;gt;YYYY-MM-DD HH:MM:SS&amp;lt;/tt&amp;gt; (SQL DATETIME)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityDate&amp;amp;UserCode=1&amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityDate&amp;amp;amp;UserCode=1&amp;amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPinValidityWeekly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Sets the weekly time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DayOfWeek&amp;lt;/tt&amp;gt; contains the days of week numbers when the PIN code is restricted. Monday is '&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;' and Sunday is '&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;'.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;tt&amp;gt;1367&amp;lt;/tt&amp;gt; means Monday, Wednesday, Saturday and Sunday.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartHour&amp;lt;/tt&amp;gt; is the hour the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartMinute&amp;lt;/tt&amp;gt; is the minute the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopHour&amp;lt;/tt&amp;gt; is the hour the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopMinute&amp;lt;/tt&amp;gt; is the minute the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityWeekly&amp;amp;UserCode=1&amp;amp;DayOfWeek=1367&amp;amp;StartHour=15&amp;amp;StartMinute=31&amp;amp;StopHour=16&amp;amp;StopMinute=42&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityWeekly&amp;amp;amp;UserCode=1&amp;amp;amp;DayOfWeek=1367&amp;amp;amp;StartHour=15&amp;amp;amp;StartMinute=31&amp;amp;amp;StopHour=16&amp;amp;amp;StopMinute=42&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DayOfWeek&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ClearPinValidity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Clears the given restriction slot.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;slotID&amp;lt;/tt&amp;gt; is the restriction slot number. The starting slot number is 1.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | slotID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ClearPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Removes the PIN code from slot &amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== HVAC_UserOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_UserOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_UserOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired operating mode of the HVAC. Currently MiOS supports only:&lt;br /&gt;
*Off&lt;br /&gt;
*HeatOn&lt;br /&gt;
*CoolOn&lt;br /&gt;
*AutoChangeOver&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual operating mode of the HVAC.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired energy mode. Can be &amp;lt;tt&amp;gt;Normal&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;EnergySavingsMode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual energy mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, and if 0, the thermostat doesn't support auto mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired HVAC operating mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetEnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired energy mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_OperatingState1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HVAC_OperatingState1&lt;br /&gt;
*'''File''': S_HVAC_OperatingState1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents what the HVAC is actually doing right now. The most common actions are:&lt;br /&gt;
*Idle&lt;br /&gt;
*Heating&lt;br /&gt;
*Cooling&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_FanOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_FanOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_FanOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The fan operation mode. Can be:&lt;br /&gt;
*Auto&lt;br /&gt;
*ContinuousOn&lt;br /&gt;
*PeriodicOn&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FanStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current fan state; can be ''On'' or ''Off''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the fan operating mode. Changes the Mode variable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TemperatureSetpoint1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSetpoint1&lt;br /&gt;
*'''File''': S_TemperatureSetpoint1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetpointTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllSetpoints&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma separated list containing the current setpoints for the following thermostat modes: heat, cool, auto.&lt;br /&gt;
Format: &amp;lt;code&amp;gt;HEAT,COOL,AUTO&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;AllSetpoints = 72,74,73&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*72 = heating setpoint&lt;br /&gt;
*74 = cooling setpoint&lt;br /&gt;
*73 = auto mode setpoint&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, the thermostat doesn't support auto setpoint, so set heat+cool this many degrees +/-&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReportMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | char&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;quot;M&amp;quot; = The report correspond to the current mode of operation and should update the setpoint in the received mode (default),&lt;br /&gt;
&amp;quot;S&amp;quot; = The report correspond to the current operating state and should update the setpoint in the current mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Range&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reject setpoint change commands whose setpoint is outside the specified range.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where each range has this format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,C&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;/F&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,F&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The range limits are inclusive, meaning the new setpoint must be &amp;gt;= X&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;lt;= X&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;14,34/58,92;16,44/60,112;-1,32/30,90&amp;lt;/code&amp;gt;&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt; = 14,34/58,92: this means that the '''auto''' setpoint must be between 14 and 34 if it's in Celsius, and between 58 and 92 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt; = 16,44/60,112: this means that the '''cool''' setpoint must be between 16 and 44 if it's in Celsius, and between 60 and 112 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt; = -1,32/30,90: this means that the '''heat''' setpoint must be between -1 and 32 if it's in Celsius, and between 30 and 90 if it's in Fahrenheit.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target setpoint.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TemperatureSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSensor1&lt;br /&gt;
*'''File''': S_TemperatureSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentTemperature&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GenericSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:GenericSensor1&lt;br /&gt;
*'''File''': S_GenericSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LightSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:LightSensor1&lt;br /&gt;
*'''File''': S_LightSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HumiditySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HumiditySensor1&lt;br /&gt;
*'''File''': S_HumiditySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SecuritySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SecuritySensor1&lt;br /&gt;
*'''File''': S_SecuritySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Tripped&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used by MiOS as a way to disable sending notifications when a sensor is tripped/untripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the UNIX time when the sensor last reported that it was tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreTripTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used to filter trip events, the value specify the time in seconds of the filter, internally it will record the last event and after the time has elapsed it will set the variable Tripped to the last known event recorded.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoUntrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used for those devices that doesn't send the Untrip command and requires to automatically untrip after certain time. The value correspond to the time in seconds that the controller will set the Tripped variable to 0 after a Trip event. To disable this feature, set the variable to 0 or remove it from the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetArmed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newArmedValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Arms or disarms the sensor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EnergyMetering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:EnergyMetering1&lt;br /&gt;
*'''File''': S_EnergyMetering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Watts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If the device can report its wattage, this is the value reported by the device, otherwise this is the value supplied by the user in &amp;lt;tt&amp;gt;UserSupliedWattage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Pulse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserSuppliedWattage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | See &amp;lt;tt&amp;gt;Watts&amp;lt;/tt&amp;gt;.&lt;br /&gt;
'''Note:''' For thermostats, &amp;lt;tt&amp;gt;UserSuppliedWattage&amp;lt;/tt&amp;gt; consists of 3 numbers separated by commas. The default is 1500,1500,300. The first number is how many watts are used when the thermostat is in 'heat' mode; the second is how many watts are used when the thermostat is in 'cool' mode; and the third number is for the 'fan only' mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | KWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Log&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of values:&lt;br /&gt;
&amp;lt;code&amp;gt;CurrentConsumption,Average,Peak,LastReading,Seconds&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*''LastReading'' is the Unix time.&lt;br /&gt;
*''Seconds'' is the period of time the ''Average'' value was computed for.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ResetKWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrTransmitter1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrTransmitter1&lt;br /&gt;
*'''File''': S_IrTransmitter1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SendProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sends the given IR code.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SerialPort1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-org:serviceId:SerialPort1&lt;br /&gt;
*'''File''': S_SerialPort1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | path&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the serial port. On Vera Lite it's &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | baud&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The baud rate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | stopbits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of stop bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | databits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of data bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | parity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Can be &amp;lt;tt&amp;gt;odd&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;even&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SceneController1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneController1&lt;br /&gt;
*'''File''': S_SceneController1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneActivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the activated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneDeactivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the deactivated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scenes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The scene ID (as reported by the scene controller) of the last activated or deactivated scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the scene was last activated or deactivated.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManageLeds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, automatically turn on/off the scene indicator lights.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumButtons&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;NumberOfButtons[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,etc.]]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*'''ButtonNumber''' must be from 1 to ''NumberOfButtons''.&lt;br /&gt;
*'''AssociationNumber''' is the association group.&lt;br /&gt;
*'''SceneNumber''' is an event ID, and it's sent instead of the one we program.&lt;br /&gt;
*'''ButtonName''' is the user friendly name of the button.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2,1-1-1=Tap Button,2-2-2=Hold Button&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ButtonMapping&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;OldButtonNumber-Attribute-NewButtonNumber[,OldButtonNumber-Attribute-NewButtonNumber[,etc.]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where '''Attribute''' has the following meaning:&lt;br /&gt;
&lt;br /&gt;
*0 = Key pressed&lt;br /&gt;
*1 = Key is released, sent only as a termination of a Key Held Down sequence&lt;br /&gt;
*2 = Key held down&lt;br /&gt;
*3 = Key double tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
*4 = Key triple tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; These attributes were added in COMMAND_CLASS_CENTRAL_SCENE V2, so it's not available on all the scene controllers.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1-0-1,1-3-2,2-0-3,2-3-4,3-0-5,3-3-6,4-0-7,4-3-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneShortcuts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FiresOffEvents&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ActivationMethod&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave stuff.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SceneControllerLED1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneControllerLED1&lt;br /&gt;
*'''File''': S_SceneControllerLED1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The lights' state. The lower 4 bits of &amp;lt;tt&amp;gt;LightSettings&amp;lt;/tt&amp;gt; are the 4 green LEDs, and the upper 4 are the 4 red LEDs. So, 10001 is an orange light, 110010 is an orange light and a red, etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SetLight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Change a light's state.&lt;br /&gt;
*&amp;lt;tt&amp;gt;newValue&amp;lt;/tt&amp;gt; is the new light state. The valid values are:&lt;br /&gt;
**0 = off&lt;br /&gt;
**1 = green&lt;br /&gt;
**2 = red&lt;br /&gt;
**3 = orange&lt;br /&gt;
*&amp;lt;tt&amp;gt;Indicator&amp;lt;/tt&amp;gt; is the button number.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicator&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrDevice1&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrDevice1&lt;br /&gt;
*'''File''': S_IrDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codesets&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | SendCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Button&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Repeat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Color1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Color1&lt;br /&gt;
*'''File''': S_Color1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Variable&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| CurrentColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| TargetColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ColorMode&lt;br /&gt;
| string&lt;br /&gt;
| Currently used only for Revogi.&lt;br /&gt;
Can have only 2 values:&lt;br /&gt;
*0 = Colorful mode&lt;br /&gt;
*1 = Color temperature mode&lt;br /&gt;
|-&lt;br /&gt;
| ColorChannelPriorities&lt;br /&gt;
| string&lt;br /&gt;
| Specify the color channel priorities like this:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;gt;1&amp;gt;2,3,4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That value can be interpretted like this: channel 0 has priority over channel 1, which has priority over channels 2, 3 and 4.&lt;br /&gt;
|-&lt;br /&gt;
| SupportedColors&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Device_Categories</id>
		<title>Luup Device Categories</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Device_Categories"/>
				<updated>2017-08-22T14:59:31Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Device categories and subcategories mapping.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category&lt;br /&gt;
! Device Type&lt;br /&gt;
! Subcategory&lt;br /&gt;
! Device Type&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Dimmable Light&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Bulb&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Plugged&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Colored&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | Switch&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Exterior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Refrigerator&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| Garage Door&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Doorbell&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Valve&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Security Sensor&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Door Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Leak Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Motion Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Smoke Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| CO Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Glass Break Sensor&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | HVAC&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Heater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Custom HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Camera&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Door Lock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 8&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Window Covering&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Window Covering&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| ZRTSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 9&lt;br /&gt;
| Remote Control&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 10&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | IR Transmitter&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| IR Transmitter&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| USB UIRT&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 11&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Generic I/O&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Generic I/O&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Repeater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 12&lt;br /&gt;
| Generic Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 13&lt;br /&gt;
| Serial Port&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 14&lt;br /&gt;
| Scene Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 15&lt;br /&gt;
| A/V&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 16&lt;br /&gt;
| Humidity Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 17&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 18&lt;br /&gt;
| Light Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 19&lt;br /&gt;
| Z-Wave Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 20&lt;br /&gt;
| Insteon Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 21&lt;br /&gt;
| Power Meter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 22&lt;br /&gt;
| Alarm Panel&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 23&lt;br /&gt;
| Alarm Partition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 24&lt;br /&gt;
| Siren&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 25&lt;br /&gt;
| Weather&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 26&lt;br /&gt;
| Philips Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 27&lt;br /&gt;
| Appliance&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 28&lt;br /&gt;
| UV Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 29&lt;br /&gt;
| Mouse Trap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Requests</id>
		<title>Luup Requests</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Requests"/>
				<updated>2017-08-22T13:52:07Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* user_data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
In addition to sending requests using standard UPnP, you can also do most things using a simple HTTP requests.  Use the built-in URL &amp;lt;tt&amp;gt;data_request&amp;lt;/tt&amp;gt;, and pass the following on the URL:&lt;br /&gt;
*&amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt; the id of the request (prior to 15 Oct 2010 all requests had an lu_ in front, which is now optional),&lt;br /&gt;
*&amp;lt;tt&amp;gt;output_format&amp;lt;/tt&amp;gt; the format in which you want a response as &amp;lt;tt&amp;gt;json&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;xml&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;text&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Not all requests support all &amp;lt;tt&amp;gt;output_format&amp;lt;/tt&amp;gt; options.&lt;br /&gt;
&lt;br /&gt;
Here is the list of requests:&lt;br /&gt;
&lt;br /&gt;
==user_data==&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=user_data&lt;br /&gt;
&lt;br /&gt;
This returns the configuration data for Vera, which is a list of all devices and the UPnP variables which are persisted between resets as well as rooms, names, and other data the user sets as part of the configuration.&lt;br /&gt;
&lt;br /&gt;
By default, the user_data is in JSON format, however, you can get it in XML format by adding the &amp;lt;code&amp;gt;output_format=xml&amp;lt;/code&amp;gt; parameter:&lt;br /&gt;
&lt;br /&gt;
http://ip_address:3480/data_request?id=user_data&amp;amp;output_format=xml&lt;br /&gt;
&lt;br /&gt;
If you don't care about the static data, which is the information from the device json files (e.g. D_BinaryLight1.json) which appears in the ''static_data'' object, then you can add the &amp;lt;code&amp;gt;ns=1&amp;lt;/code&amp;gt; parameter:&lt;br /&gt;
&lt;br /&gt;
http://ip_address:3480/data_request?id=user_data&amp;amp;output_format=xml&amp;amp;ns=1&lt;br /&gt;
&lt;br /&gt;
==status==&lt;br /&gt;
This returns the current status for all devices including all the current UPnP variables and the status of any active jobs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* http://ip_address:3480/data_request?id=status&amp;amp;output_format=xml&lt;br /&gt;
Or for a specific device:&lt;br /&gt;
* http://ip_address:3480/data_request?id=status&amp;amp;output_format=xml&amp;amp;UDN=uuid:4d494342-5342-5645-0002-000000000002&lt;br /&gt;
* http://ip_address:3480/data_request?id=status&amp;amp;output_format=xml&amp;amp;DeviceNum=6&lt;br /&gt;
&lt;br /&gt;
==sdata==&lt;br /&gt;
&lt;br /&gt;
This is an abbreviated form of [[#user_data|user_data]] and [[#status|status]] (sdata = ''summary data''). It allows a user interface that is only worried about control, and not detailed configuration, to get a summary of the data that would normally be presented to the user and to monitor the changes. See [[UI_Simple]] for a walkthrough.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* http://ip_address:3480/data_request?id=sdata&lt;br /&gt;
* http://ip_address:3480/data_request?id=sdata&amp;amp;output_format=xml&lt;br /&gt;
&lt;br /&gt;
==actions==&lt;br /&gt;
&lt;br /&gt;
==device==&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=device&amp;amp;action=rename&amp;amp;device=5&amp;amp;name=Chandalier&amp;amp;room=3&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=device&amp;amp;action=rename&amp;amp;device=5&amp;amp;name=Chandalier&amp;amp;room=Garage&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=device&amp;amp;action=delete&amp;amp;device=5&lt;br /&gt;
&lt;br /&gt;
This renames or deletes a device.  Use action=rename or action=delete.  For rename, you can optionally assign a room by passing either the ID or the name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---old---&lt;br /&gt;
This returns all the XML with all the UPNP device description documents.  Use: http://ip_address:3480/data_request?id=device&amp;amp;output_format=xml&amp;amp;DeviceNum=x or &amp;amp;UDN=y to narrow it down.  Then when you see the service URL's, like &amp;lt;SCPDURL&amp;gt;/luvd/S_HVAC_UserOperatingMode1.xml&amp;lt;/SCPDURL&amp;gt;, you can view them with: http://ip_address:3480/luvd/S_HVAC_UserOperatingMode1.xml&lt;br /&gt;
---end old---&lt;br /&gt;
&lt;br /&gt;
==scene==&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=scene&amp;amp;action=record&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=scene&amp;amp;action=pause&amp;amp;seconds=y&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=scene&amp;amp;action=stoprecord&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=scene&amp;amp;action=listrecord&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=scene&amp;amp;action=deleterecord&amp;amp;number=x&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=scene&amp;amp;action=saverecord&amp;amp;name=whatever&amp;amp;room=X&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=scene&amp;amp;action=rename&amp;amp;scene=5&amp;amp;name=Chandalier&amp;amp;room=Garage&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=scene&amp;amp;action=delete&amp;amp;scene=5&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=scene&amp;amp;action=create&amp;amp;json=[valid json data]&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=scene&amp;amp;action=list&amp;amp;scene=5&lt;br /&gt;
&lt;br /&gt;
This creates, renames, or deletes a scene depending on the action.&lt;br /&gt;
&lt;br /&gt;
Recording a scene means whatever actions come in after sending the 'record' will be saved into an internal buffer.  listrecord shows what's recorded so far.  pause adds a pause.  deleterecord deletes some action in the internal buffer.  When deleting, for number=x, use the same 'id' in listrecord.  saverecord takes the internal buffer, the recorded macro, and saves it as an actual scene.&lt;br /&gt;
&lt;br /&gt;
To create a scene by hand, rather than recording it, use 'create'.  When using the 'create' command json must be valid JSON for a scene as documented in [[Scene_Syntax]].  The name, room and optional id (if you're overwriting an existing scene) are passed in the json, so nothing is on the command line except the json.  Because the json data can be long it is recommended to send it as an http POST instead of GET with the data passed with the name &amp;quot;json&amp;quot;&lt;br /&gt;
&lt;br /&gt;
list returns the JSON data for an existing scene.&lt;br /&gt;
&lt;br /&gt;
==room==&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=room&amp;amp;action=create&amp;amp;name=Kitchen&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=room&amp;amp;action=rename&amp;amp;room=5&amp;amp;name=Garage&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=room&amp;amp;action=delete&amp;amp;room=5&lt;br /&gt;
&lt;br /&gt;
This creates, renames, or deletes a room depending on the action.  To rename or delete a room you must pass the room id for the room.&lt;br /&gt;
&lt;br /&gt;
==file==&lt;br /&gt;
Returns the contents of a file in '''/etc/cmh''' or '''/etc/cmh-ludl'''. Has one parameter, &amp;lt;tt&amp;gt;parameters&amp;lt;/tt&amp;gt;, which is the name of the file.&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=file&amp;amp;parameters=D_BinaryLight1.xml&lt;br /&gt;
&lt;br /&gt;
==lua==&lt;br /&gt;
&lt;br /&gt;
== action ==&lt;br /&gt;
&lt;br /&gt;
Sends a UPnP action.&lt;br /&gt;
* To call the action for a single device, use &amp;lt;code&amp;gt;DeviceNum&amp;lt;/code&amp;gt;.&lt;br /&gt;
* To call the action for all devices in the same category, use &amp;lt;code&amp;gt;Category&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Examples:'''&lt;br /&gt;
&lt;br /&gt;
* Turn off a light:&lt;br /&gt;
http://ip_address:3480/data_request?id=action&amp;amp;amp;output_format=xml&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:upnp-org:serviceId:SwitchPower1&amp;amp;amp;action=SetTarget&amp;amp;amp;newTargetValue=0&lt;br /&gt;
&lt;br /&gt;
* Set a dimmable light to 30%:&lt;br /&gt;
http://ip_address:3480/data_request?id=action&amp;amp;amp;output_format=json&amp;amp;amp;DeviceNum=7&amp;amp;amp;serviceId=urn:upnp-org:serviceId:Dimming1&amp;amp;amp;action=SetLoadLevelTarget&amp;amp;amp;newLoadlevelTarget=30 &lt;br /&gt;
&lt;br /&gt;
* Run a scene:&lt;br /&gt;
http://ip_address:3480/data_request?id=action&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;amp;amp;action=RunScene&amp;amp;amp;SceneNum=&amp;amp;lt;SceneNum&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install a plugin:&lt;br /&gt;
http://ip_address:3480/data_request?id=action&amp;amp;serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&amp;amp;action=CreatePlugin&amp;amp;PluginNum=&amp;lt;PluginNum&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Turn off all lights:&lt;br /&gt;
http://ip_address:3480/data_request?id=action&amp;amp;amp;output_format=xml&amp;amp;amp;Category=999&amp;amp;amp;serviceId=urn:upnp-org:serviceId:SwitchPower1&amp;amp;amp;action=SetTarget&amp;amp;amp;newTargetValue=0&lt;br /&gt;
&lt;br /&gt;
* Arm all sensors:&lt;br /&gt;
http://ip_address:3480/data_request?id=action&amp;amp;amp;output_format=xml&amp;amp;amp;Category=4&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:SecuritySensor1&amp;amp;amp;action=SetArmed&amp;amp;amp;newArmedValue=1&lt;br /&gt;
&lt;br /&gt;
{{Info|Category 999 is a virtual category which encompasses all devices in category 2 (dimmable lights) and 3 (binary lights).}}&lt;br /&gt;
&lt;br /&gt;
==variableset==&lt;br /&gt;
&lt;br /&gt;
http://ip_address:3480/data_request?id=variableset&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;Variable=Status&amp;amp;Value=1&lt;br /&gt;
&lt;br /&gt;
If you leave off the DeviceNum and serviceID, then this sets a top-level json tag called &amp;quot;Variable&amp;quot; with the value.&lt;br /&gt;
&lt;br /&gt;
==variableget==&lt;br /&gt;
&lt;br /&gt;
http://ip_address:3480/data_request?id=variableget&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;Variable=Status&lt;br /&gt;
&lt;br /&gt;
If you leave off the DeviceNum and serviceID, then this gets a top-level json tag called &amp;quot;Variable&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==reload==&lt;br /&gt;
&lt;br /&gt;
Resets the Luup engine with any new configuration settings.&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=reload&lt;br /&gt;
&lt;br /&gt;
==alive==&lt;br /&gt;
&lt;br /&gt;
Return OK if the engine is running.&lt;br /&gt;
&lt;br /&gt;
==finddevice==&lt;br /&gt;
&lt;br /&gt;
Returns the '''device number''', '''UDN''' and '''device type''' of the first device that matches any or all the parameters passed on the URL: &amp;lt;tt&amp;gt;devtype&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;ip&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;devid&amp;lt;/tt&amp;gt;, where &amp;lt;tt&amp;gt;devid&amp;lt;/tt&amp;gt; is the ''altid'' of the device.  Or instead of &amp;lt;tt&amp;gt;devid&amp;lt;/tt&amp;gt;, pass '''&amp;lt;tt&amp;gt;devnum&amp;lt;/tt&amp;gt;''' and it will find the device with that number.&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=finddevice&amp;amp;devid=6&lt;br /&gt;
&lt;br /&gt;
==resync==&lt;br /&gt;
&lt;br /&gt;
ReSync's all the devices, rooms, users, sections with event servers and returns OK&lt;br /&gt;
&lt;br /&gt;
==wget==&lt;br /&gt;
&lt;br /&gt;
Returns the contents of the URL you pass in the &amp;quot;url&amp;quot; argument.  Optionally append &amp;quot;user&amp;quot; and &amp;quot;pass&amp;quot; arguments for http authentication, and &amp;quot;timeout&amp;quot; to specify the maximum time to wait in seconds.&lt;br /&gt;
&lt;br /&gt;
==iprequests==&lt;br /&gt;
&lt;br /&gt;
Returns the recent IP requests in order by most recent first, including information about devices in use and if the IP is blacklisted (ignored by the plug and play mechanism).  Optionally append '''&amp;lt;tt&amp;gt;timeout&amp;lt;/tt&amp;gt;''' to specify the oldest IP request in seconds.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* This returns the devices which showed up on the network in the past hour:&lt;br /&gt;
http://ip_address:3480/data_request?id=iprequests&amp;amp;timeout=3600&lt;br /&gt;
* This returns the devices which showed up on the network in the last 24 hours:&lt;br /&gt;
http://ip_address:3480/data_request?id=iprequests&amp;amp;timeout=86400&lt;br /&gt;
&lt;br /&gt;
==blacklistip==&lt;br /&gt;
&lt;br /&gt;
Append &amp;quot;ip&amp;quot; to the URL, and optionally &amp;quot;remove=1&amp;quot; to add (or remove) the IP to the blacklist so plug and play IP devices won't be added.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;Not implemented yet!&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==live_energy_usage==&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, it reports the current energy usage in a tab delimited format.&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=live_energy_usage&lt;br /&gt;
&lt;br /&gt;
 '''Device #'''    '''Name'''              '''Room'''         '''Category'''    '''Watts'''&lt;br /&gt;
 59          Basement Light    Basement     3           20&lt;br /&gt;
 60          Bedroom Light     1st Floor    3           0&lt;br /&gt;
 61          Porch Light       Outside      3           30&lt;br /&gt;
&lt;br /&gt;
To display only the watts variable : http://ip_address:3480/data_request?id=variableget&amp;amp;DeviceNum=34&amp;amp;serviceId=urn:micasaverde-com:serviceId:EnergyMetering1&amp;amp;Variable=Watts&lt;br /&gt;
and you must specify the device id for the variable and the service id.&lt;br /&gt;
&lt;br /&gt;
==request_image==&lt;br /&gt;
&lt;br /&gt;
Returns an image from a camera. This fetches the image from the camera using the URL variable for the device. Pass arguments:&lt;br /&gt;
&lt;br /&gt;
 cam = the device id of the camera.  This is the only mandatory argument.&lt;br /&gt;
 res = optional: a resolution, which gets appended to the variable.  So passing &amp;quot;low&amp;quot; means the image from the URL_low variable will be returned.  If it doesn't exist it reverts to the standard URL or DirectStreamingURL&lt;br /&gt;
 timeout = optional: how long to wait for the image to be retrieved, or how long to retrieve video.  defaults to 10 seconds.&lt;br /&gt;
 url = optional: override the camera's default URL&lt;br /&gt;
 ip = optional: override the camera's default ip&lt;br /&gt;
 user or pass = optional: override the camera's default username/password&lt;br /&gt;
&lt;br /&gt;
==archive_video==&lt;br /&gt;
''* UI5+ only''&lt;br /&gt;
&lt;br /&gt;
Archives a MJPEG video or a JPEG snapshot.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
* &amp;lt;tt&amp;gt;cam&amp;lt;/tt&amp;gt;: the device # of the camera.&lt;br /&gt;
* &amp;lt;tt&amp;gt;duration&amp;lt;/tt&amp;gt;: the duration, in seconds, of the video. The default value is 60 seconds.&lt;br /&gt;
* &amp;lt;tt&amp;gt;format&amp;lt;/tt&amp;gt;: set it to '''1''' for snapshots. If this is missing or has any other value, the archive will be a MJPEG video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* Archive a snapshot:&lt;br /&gt;
http://ip_address:3480/data_request?id=archive_video&amp;amp;cam=8&amp;amp;format=1&lt;br /&gt;
* Archive a 40 seconds video:&lt;br /&gt;
http://ip_address:3480/data_request?id=archive_video&amp;amp;cam=3&amp;amp;duration=40&lt;br /&gt;
&lt;br /&gt;
==jobstatus==&lt;br /&gt;
&lt;br /&gt;
Returns the status of a job. The parameters are &amp;lt;tt&amp;gt;job&amp;lt;/tt&amp;gt;, which is the job ID and optionally &amp;lt;tt&amp;gt;plugin&amp;lt;/tt&amp;gt;, which is the plugin name.&lt;br /&gt;
{{Warning|For a Z-Wave job, the value of the &amp;lt;tt&amp;gt;plugin&amp;lt;/tt&amp;gt; parameter must be ''zwave''.}}&lt;br /&gt;
If &amp;lt;tt&amp;gt;job&amp;lt;/tt&amp;gt; is invalid the status returned is ''-1''.&lt;br /&gt;
&lt;br /&gt;
This is the list with all job statuses and their meaning:&lt;br /&gt;
&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;
Examples:&lt;br /&gt;
&lt;br /&gt;
http://ip_address:3480/data_request?id=jobstatus&amp;amp;job=13&lt;br /&gt;
&lt;br /&gt;
http://ip_address:3480/data_request?id=jobstatus&amp;amp;job=6&amp;amp;plugin=zwave&lt;br /&gt;
&lt;br /&gt;
==invoke==&lt;br /&gt;
&lt;br /&gt;
This request shows the list of devices and the actions they support through the UPnP services specified in their UPnP device description file. Only the actions with a star (*) preceding their name are implemented.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* http://ip_address:3480/data_request?id=invoke&lt;br /&gt;
* http://ip_address:3480/data_request?id=invoke&amp;amp;DeviceNum=6&lt;br /&gt;
* http://ip_address:3480/data_request?id=invoke&amp;amp;UDN=uuid:4d494342-5342-5645-0002-000000000002&lt;br /&gt;
&lt;br /&gt;
==relay==&lt;br /&gt;
''* UI5+ only''&lt;br /&gt;
&lt;br /&gt;
This tells the system to setup a relay so that you can access a device on the home network from outside the home.  This is most commonly used to fetch streaming video from a camera, although it can actually be used for any IP device.  This takes either an 'ip' or 'device' argument.  If you pass a device, this is assumed to be a device ID, and the system will find the ip associated with that device.  Optionally pass a port argument for the port you want to be relayed.  Port 80 is assumed if none is specified.&lt;br /&gt;
&lt;br /&gt;
This request will return a 'server:port' which you can use externally to access the designated device.  The relay stays open for 15 minutes before closing, at which point you will need to open it again.&lt;br /&gt;
&lt;br /&gt;
So, assume you have a NAS device on the home network with the ip 192.168.1.55 and the NAS runs a configuration web page on port 80.  You could access it by doing this:&lt;br /&gt;
&lt;br /&gt;
http://ip_address:3480/data_request?id=relay&amp;amp;ip=192.168.1.55&amp;amp;port=80&lt;br /&gt;
&lt;br /&gt;
and if the response is: &amp;quot;someserver:20202&amp;quot;, then for 15 minutes, &amp;quot;http://someserver:20202&amp;quot; will be the NAS's configuration page.&lt;br /&gt;
&lt;br /&gt;
If you want to access a camera, device #5, then do this:&lt;br /&gt;
&lt;br /&gt;
http://ip_address:3480/data_request?id=relay&amp;amp;device=5&lt;br /&gt;
&lt;br /&gt;
and if the response is &amp;quot;someserver:20211&amp;quot; and if the 'DirectStreamURL' variable (or 'streaming' in sdata) is &amp;quot;video.mpeg&amp;quot;, then for 15 minutes you can access the camera's video at: http://someserver:20211/video.mpeg&lt;br /&gt;
&lt;br /&gt;
Note that if the device, the camera in this case, has http authentication, you will need to pass this too.  So, if the user_data or sdata for the camera shows the user name is 'johndoe' and the password is 'john123', then you can view the video at: http://john:john123@someserver:20211/video.mpeg&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: For the 15 minutes while this relay is open, it will be open to anyone on the internet and public.  Therefore, for security, you may want to add to the data_request the argument externalip=x where x is the routable, external IP, such as 70.182.172.111, of the device that will be accessing the port.  This means that when the relay is open, a firewall will be set on the relay server so that incoming connections are only accepted from that ip address.&lt;br /&gt;
&lt;br /&gt;
==update_plugin==&lt;br /&gt;
''* UI5+ only''&lt;br /&gt;
&lt;br /&gt;
Updates a plugin to the latest version.&lt;br /&gt;
&lt;br /&gt;
Example: http://ip_address:3480/data_request?id=update_plugin&amp;amp;Plugin=Plugin_ID&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Accessing Vera remotely through the MiOS servers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000; font-weight:bold; font-style:italic&amp;quot;&amp;gt;* Obsolete on UI7&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The MiOS servers provide a secure way to remotely access and control your Vera system using the HTTP interface. Everything you can do locally with Vera on port 3480, you can do remotely with MiOS using the exact same syntax. You only need to pass the MiOS account username and password on the URL to the remote access server, along with the serial number of the unit (ie. 30012345). For example, the &amp;lt;tt&amp;gt;user_data&amp;lt;/tt&amp;gt; request syntax over the Internet through the MiOS servers is:&lt;br /&gt;
&lt;br /&gt;
[https://fwdX.mios.com/demovera/myvera123/30012345/data_request?id=user_data https://fwdX.mios.com/demovera/myvera123/30012345/data_request?id=user_data]&lt;br /&gt;
&lt;br /&gt;
assuming ''demovera'' is the MiOS account username and ''myvera123'' is the password. '''Note that since the request is &amp;lt;tt&amp;gt;https&amp;lt;/tt&amp;gt;, the username and password are encrypted because &amp;lt;tt&amp;gt;https&amp;lt;/tt&amp;gt; encrypts the URL's as well as the contents of the page.'''&lt;br /&gt;
&lt;br /&gt;
==What to do when the HTTP request string is too long==&lt;br /&gt;
&lt;br /&gt;
http://forum.micasaverde.com/index.php/topic,10170.msg69530.html#msg69530&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions</id>
		<title>Luup UPnP Variables and Actions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions"/>
				<updated>2017-08-22T09:02:30Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* TemperatureSetpoint1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all the UPnP actions and variables used by MiOS.&lt;br /&gt;
&lt;br /&gt;
Some actions and variables have self-explanatory names, so there's a dash ('-') instead of the description.&lt;br /&gt;
&lt;br /&gt;
== HomeAutomationGateway1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HomeAutomationGateway1&lt;br /&gt;
*'''File''': S_HomeAutomationGateway1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataVersion&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A number that increases each time the data changes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Unique Device Name of the UPnP device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload the LuaUPnP engine.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ModifyUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | inUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Make changes to the UserData.&lt;br /&gt;
*&amp;lt;tt&amp;gt;inUserData&amp;lt;/tt&amp;gt; is the new UserData object which will be added to the UserData or will replace an existent UserData object.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DataFormat&amp;lt;/tt&amp;gt; must be ''json''.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is ''1'' the LuaUPnP engine will reload after the UserData is modified.&lt;br /&gt;
&lt;br /&gt;
For more information read the [[ModifyUserData]] page.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataFormat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Create or change the value of a variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; can be an UDN or a number.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Service&amp;lt;/tt&amp;gt; is the service ID of the variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Variable&amp;lt;/tt&amp;gt; is the variable name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Value&amp;lt;/tt&amp;gt; is the new variable value.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Service&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Variable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | RunScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Run the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SceneOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Turn off all the devices from DEVICE_CATEGORY_DIMMABLE_LIGHT and DEVICE_CATEGORY_SWITCH from the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | RunLua&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Run the given Lua code. If &amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; is specified, the code is run using that device's interface.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Code&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | CreateDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | deviceType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | Create a device using the given parameters.&lt;br /&gt;
*&amp;lt;tt&amp;gt;deviceType&amp;lt;/tt&amp;gt; is the UPnP device type.&lt;br /&gt;
*&amp;lt;tt&amp;gt;internalID&amp;lt;/tt&amp;gt; is the specific ID (also known as ''altid'') of the device; for example, for Z-Wave devices this is the Node ID, and for Insteon device it is the Insteon ID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Description&amp;lt;/tt&amp;gt; is the device name, which is shown to the user on the dashboard.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpDevFilename&amp;lt;/tt&amp;gt; is the UPnP device description file name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpImplFilename&amp;lt;/tt&amp;gt; is the implementation file to use.&lt;br /&gt;
*If the device is IP based, &amp;lt;tt&amp;gt;IpAddress&amp;lt;/tt&amp;gt; is the IP address and port of the device.&lt;br /&gt;
*If this should be the child of another device, &amp;lt;tt&amp;gt;DeviceNumParent&amp;lt;/tt&amp;gt; is the device number of the parent device.&lt;br /&gt;
*&amp;lt;tt&amp;gt;RoomNum&amp;lt;/tt&amp;gt; is the number of the room the device will be in.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; tells the device which plugin to use. The plugin will be installed automatically if it's not already installed.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; is a string containing the variables you want set when the device is created. You can specify multiple variables by separating them with a line feed ('\n'), and use ',' and '=' to separate service, variable and value, like this: &amp;lt;tt&amp;gt;service,variable=value\nservice,variable=value\n&amp;lt;/tt&amp;gt;...&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is '''1''', the Luup engine will be restarted after the device is created.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | internalID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpDevFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpImplFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Username&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Password&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNumParent&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | DeleteDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Delete the device given either through its number, or through its UDN.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | CreatePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Create a plugin with the &amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; number and &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; version. &amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; are the variables that will be set when the device is created. For more information look at the description of the '''CreateDevice''' action above.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Version&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DeletePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Uninstall the given plugin.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | CreatePluginDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Creates a device for plugin #&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ImportUpnpDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | LogIpRequest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetHouseMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Changes the house mode.&lt;br /&gt;
&amp;lt;tt&amp;gt;Mode&amp;lt;/tt&amp;gt; can be:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = Home&lt;br /&gt;
*&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = Away&lt;br /&gt;
*&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = Night&lt;br /&gt;
*&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = Vacation&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HaDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HaDevice1&lt;br /&gt;
*'''File''': S_HaDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CommFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is set to ''1'' if we've lost communication with the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The configuration state of the device:&lt;br /&gt;
*-3 = Configuration failed&lt;br /&gt;
*-2 = Configuration in progress&lt;br /&gt;
*-1 = Device waiting to be configured&lt;br /&gt;
*0 = Device not configured&lt;br /&gt;
*1 = Device successfully configured&lt;br /&gt;
*2 = Device partially configured&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoConfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically check the routing info for this every 12 hours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The battery level reported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the &amp;lt;tt&amp;gt;BatteryLevel&amp;lt;/tt&amp;gt; was reported.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeCheck&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Only for devices that are capable of implementing time, this is when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeOffset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | For &amp;lt;tt&amp;gt;LastTimeCheck&amp;lt;/tt&amp;gt;, this is the timezone offset from UTC when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device information was last updated. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FirstConfigured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device was first configured. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreRoom&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used only by the MiOS scene controller. Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Commands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of &amp;lt;tt&amp;gt;ControlCodes&amp;lt;/tt&amp;gt; for the enabled UI controls. If the &amp;lt;tt&amp;gt;ControlCode&amp;lt;/tt&amp;gt; of an UI control (e.g. button) is not in this list, the button will be disabled (greyed out). If this variable is missing, all controls will be enabled. If this variable is empty, all controls will be disabled.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IODevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The device number to connect to for IO. (this is on the master device)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IOPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The port to receive connections on from &amp;lt;tt&amp;gt;IODevice&amp;lt;/tt&amp;gt;. (this is on the serial port)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReverseOnOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, the commands for some devices are reversed (e.g. the On command will turn the device Off, and vice versa). Not all devices support this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_Alarm&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Currently used only by the water leak sensor, contains the alarm code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeSetting&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains the state of the device for each house mode.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;&amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;...&lt;br /&gt;
&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is empty, the sensor is disarmed/bypassed.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is &amp;quot;A&amp;quot;, the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1:;2:A;3:A;4:A&lt;br /&gt;
&lt;br /&gt;
*In &amp;lt;tt&amp;gt;Home&amp;lt;/tt&amp;gt;(1) mode the sensor is disarmed;&lt;br /&gt;
*in &amp;lt;tt&amp;gt;Away&amp;lt;/tt&amp;gt;(2), &amp;lt;tt&amp;gt;Night&amp;lt;/tt&amp;gt;(3) and &amp;lt;tt&amp;gt;Vacation&amp;lt;/tt&amp;gt;(4) modes the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Children&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of KitDevice numbers.&lt;br /&gt;
LuaUPnP will create a child device for every item in the list, with the specified KitDevice properties.&lt;br /&gt;
&lt;br /&gt;
Can be used to add children to devices which don't have MultiChannel support.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the polls are doing, where 5.0 means that the last 50 polls were successful and 0.0 means that all the last 50 polls were unsuccessful.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the wakeups are being received, where 5.0 means that the we received the last 50 wakeups when they have suppose to be sent and 0.0 means that we didn't receive any of the 50 last wakeups that the device should have sent&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''See the description of this variable in ZWaveDevice1 section, because it should belong to the service urn:micasaverde-com:serviceId:ZWaveDevice1, but it was kept in urn:micasaverde-com:serviceId:HaDevice1 to maintain backward compatibility.'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeConfiguration&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Implementation of custom preset modes for any device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;[&amp;amp;#124;&amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;upnp_action&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;service&amp;amp;gt;/&amp;amp;lt;action&amp;amp;gt;/&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;[&amp;amp;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the value is '?', it means that it's a wildcard and the ''ModeSettings'' variable should contain a comma separated list of values in order to substitute this '?' wildcard. If the value is not '?', then the value is fixed and it should be URL encoded.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 h;h code;urn:upnp-org:serviceId:SwitchPower1/SetTarget/newTargetValue=?&amp;amp;otherParameter=45&amp;amp;another=?&amp;amp;#124;s;s code;urn:upnp-org:serviceId:Dimming1/SetTargetLevel/newLevel=34&amp;amp;other=?&amp;amp;another=4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeControls&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used to tell the UI what controls to show in the House modes configuration page for the actions in the ''CustomModeConfiguration'' variable.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;;&amp;lt;control info for arg #2&amp;gt;;..;&amp;lt;control info for arg #N&amp;gt;[&amp;amp;#124;&amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | StressTest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stress test the Z-Wave device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove the device from the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ToggleState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Toggle the state of the device (e.g. if the device it's Off, turns it On). The device must have a binary state (On/Off, Locked/Unlocked, etc.).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ZWaveDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveDevice1&lt;br /&gt;
*'''File''': S_ZWaveDevice1.xml ''(nonexistent)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the polling frequency for a node (i.e. the minimum number of seconds between two poll commands to the same node). If this variable doesn't exist or is blank, the default polling frequency set in the &amp;lt;tt&amp;gt;ZWaveNetwork1&amp;lt;/tt&amp;gt;'s &amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt; variable will be used. If it's '''0''', polling will be disabled for this node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollCommands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of command classes/commands to poll. '&amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt;' means the device won't respond to any poll.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChEndpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Neighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbor devices' node IDs. '1' is the Vera's node ID.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NeighborsInverse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbors that see us.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Capabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The first 6 numbers in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are what is reported by the &amp;lt;tt&amp;gt;ZW_GetNodeProtocolInfo&amp;lt;/tt&amp;gt; function: Capability, Security, Reserved, Basic Device Class [, Generic Device Class, Specific Device Class]. If the &amp;lt;tt&amp;gt;Capability&amp;lt;/tt&amp;gt; is &amp;gt;= 128, then the device listens for commands, otherwise it's a battery operated device that only wakes up occasionally. After the '&amp;amp;#124;' in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are the command classes supported. More information here: [[ZWave Command Classes]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SecurityFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't talk to this node with security even if the node reports it can.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastReset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When we last reset the node association. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How often this battery operated device should wake up to report its status. The default value is 1800 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredWakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The wakeup interval already configured on the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastWakeup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device last woke up and reported its status. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastRouteUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device's routing information was last checked/updated. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Health&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A rating from 0-5. A large number means that MiOS can communicate with it easily.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HealthDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The date the rating was assigned. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings read from the device.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number,variable1_value,variable2_number,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings set by the user.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number-variable1_description,variable1_data_type,variable1_value,variable2_number-variable2_description,variable2_data_type,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This are the association settings read from the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave associations for a device are stored in this variable.&lt;br /&gt;
The associations are delimited by ';', 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 IDs, not device IDs (ie the 'altid' in the UI). If the node ID is 'z', it means the node ID of the device for which the variable is set.&lt;br /&gt;
&lt;br /&gt;
For multi-channel there is a '.' following the node ID with the endpoint ID.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1,3.4,7;2,5.1,8&lt;br /&gt;
&lt;br /&gt;
Means group #1 is associated with node #3 endpoint #4 and with node #7, which is non-multi-channel; group #2 is associated with node #5 endpoint #1, and with node #8.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of association groups supported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NonceACK&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManufacturerInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device information. Format:&lt;br /&gt;
 ManufacturerID,ProductType,ProductID&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is what's reported by the COMMAND_CLASS_VERSION command VERSION_REPORT. There are 5 values: Z-Wave Library Type, Z-Wave Protocol Version, Z-Wave Protocol Sub Version, Application Version, Application Sub Version. The &amp;lt;tt&amp;gt;Application Version&amp;lt;/tt&amp;gt; is specific to the device and not defined by Z-Wave.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetPointInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of the supported setpoint types:&lt;br /&gt;
*&amp;lt;tt&amp;gt;H1&amp;lt;/tt&amp;gt; = Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C1&amp;lt;/tt&amp;gt; = Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;F1&amp;lt;/tt&amp;gt; = Furnace&lt;br /&gt;
*&amp;lt;tt&amp;gt;D1&amp;lt;/tt&amp;gt; = Dry Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;MA&amp;lt;/tt&amp;gt; = Moist Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;AC&amp;lt;/tt&amp;gt; = Auto changeover&lt;br /&gt;
*&amp;lt;tt&amp;gt;H2&amp;lt;/tt&amp;gt; = Energy Save Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C2&amp;lt;/tt&amp;gt; = Energy Save Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;AH&amp;lt;/tt&amp;gt; = Away Heating&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of the command classes supported by this device. (hexadecimal numbers)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InitialName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The name that was initially set when the node was first added.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified name when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;VariablesSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredAssoc&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;AssociationSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Documentation&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL of the documentation used on the ''Device Options'' page.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The meter type:&lt;br /&gt;
*1 = electric&lt;br /&gt;
*2 = gas&lt;br /&gt;
*3 = water&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A bit map of the supported meter scales.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | List of the supported alarm types.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollOk, PollTxFail, PollNoReply&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | These variables are incremented each time the last poll job has the status they describe. They are reset after each network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A route specified by the end-user. This is a '''dot'''-separated list of nodes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllRoutesFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when all the manual routes have failed.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This contains a list of various routes chosen by profilings.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 route1_node1.route1_node2...-route1_score[x],route2_node1.route2_node2...-route2_score[x],...&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;score&amp;lt;/tt&amp;gt; is a measure of latency and accuracy, the lower the number, the better. '&amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;' means that the last attempt to use this route failed, so it won't be used anymore.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreDirectScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SwitchMlSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BasicSetCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining actions for BASIC_SET messages.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Value&amp;gt;=&amp;lt;Action&amp;gt;&amp;lt;Endpoint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*Value &amp;amp;nbsp;: the BASIC_SET Value; if Value is &amp;quot;XX&amp;quot;, it means any value&lt;br /&gt;
*Action &amp;amp;nbsp;: the Action to perform; the supported values are: T&amp;lt;tt&amp;gt;=Trip&amp;lt;/tt&amp;gt;, U&amp;lt;tt&amp;gt;=Untrip&amp;lt;/tt&amp;gt;, O&amp;lt;tt&amp;gt;=On&amp;lt;/tt&amp;gt;, F&amp;lt;tt&amp;gt;=Off&amp;lt;/tt&amp;gt;, D&amp;lt;tt&amp;gt;=Dim&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Endpoint &amp;amp;nbsp;: the Endpoint device ID (altid); if Endpoint=0, it means the parent node, or the current node if the device has no children&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=Ue1,FF=Te1&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Untrip endpoint &amp;quot;e1&amp;quot;; if receive 0xFF, Trip endpoint &amp;quot;e1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;XX=D02&amp;lt;/code&amp;gt; =&amp;gt; Dim endpoint 02 to whatever value received&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=T0,FF=U0&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Trip the current node; if receive 0xFF, Untrip the current node&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SupportedMRTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining which meter report types are supported by the device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;;&amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*CC Hex &amp;amp;nbsp;: the Hex value of the command class (without 0x):&lt;br /&gt;
**0x31 for COMMAND_CLASS_SENSOR_MULTILEVEL&lt;br /&gt;
**0x32 for COMMAND_CLASS_METER&lt;br /&gt;
*Supported Type &amp;amp;nbsp;: The HEX value of the type supported for the Command class without 0x&lt;br /&gt;
**Supported types for COMMAND_CLASS_SENSOR_MULTILEVEL:&lt;br /&gt;
***Temperature = 0x01&lt;br /&gt;
***General = 0x02&lt;br /&gt;
***Luminance = 0x03&lt;br /&gt;
***Power = 0x04&lt;br /&gt;
***RelativeHumidity = 0x05&lt;br /&gt;
***Velocity = 0x06&lt;br /&gt;
***Direction = 0x07&lt;br /&gt;
***AtmosphericPressure = 0x08&lt;br /&gt;
***BarometricPressure = 0x09&lt;br /&gt;
***SolarRadiation = 0x0A&lt;br /&gt;
***DewPoint = 0x0B&lt;br /&gt;
***RainRate = 0x0C&lt;br /&gt;
***TideLevel = 0x0D&lt;br /&gt;
***Weight = 0x0E&lt;br /&gt;
***Voltage = 0x0F&lt;br /&gt;
***Current = 0x10&lt;br /&gt;
***CO2level = 0x11&lt;br /&gt;
***AirFlow = 0x12&lt;br /&gt;
***TankCapacity = 0x13&lt;br /&gt;
***Distance = 0x14&lt;br /&gt;
***SeismicIntensity = 0x19&lt;br /&gt;
***UltraViolet = 0x1B&lt;br /&gt;
&lt;br /&gt;
**Supported types for COMMAND_CLASS_METER:&lt;br /&gt;
***Electric=0x01&lt;br /&gt;
***Gas=0x02&lt;br /&gt;
***Water=0x03&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;31-0F,0E,10,1B;32-01,03&amp;lt;/code&amp;gt; =&amp;gt; Device supports Voltage, Weight, Current and UltraViolet for COMMAND_CLASS_SENSOR_MULTILEVEL and Electric and Water from COMMAND_CLASS_METER&lt;br /&gt;
&lt;br /&gt;
If the variable is empty it will be treated as support anything. If the variable does not contain a command class that command class will be treated as support everything.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NoChildren&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this variable is '''1''', delete the child devices, and don't allow the creation of other child devices, to avoid creating ghost devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''(NOTE: this is its new service. ''urn:micasaverde-com:serviceId:HaDevice1'' was left unchanged to mantain backward compatibility.)'''&lt;br /&gt;
Allows setting what each Alarm Type does for devices using COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION. The format is:&lt;br /&gt;
&lt;br /&gt;
 AlarmTypes:AlarmLevels:AlarmCode:Action;AlarmTypes:AlarmLevels:AlarmCode:Action&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmTypes&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;type1,type2-type3,!type4&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmLevels&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;00,01,05-20,!FF&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;SMOKE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAMPER_ALARM&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Action&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = don't update the ''Tripped'' variable, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = update the ''Tripped'' variable, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = ignore the message (i.e. don't update the ''sl_Alarm'' variable)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 01:FF:SMOKE:1;0C:FF::1;0D:FF:TAMPER_ALARM:0&lt;br /&gt;
&lt;br /&gt;
*if Alarm Type is ''0x01'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;SMOKE&amp;quot; and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0C'' and the Alarm Level is ''0xFF'', don't update the ''sl_Alarm'' variable, and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0D'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;TAMPER_ALARM&amp;quot;, but don't trip the sensor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypesV2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows customizing the handling of the COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION &amp;gt;= v2 messages.&lt;br /&gt;
The format is a ';' separated list of tokens. Format of each token:&lt;br /&gt;
&lt;br /&gt;
 TypesV1:LevelV1:NotificationStatus:NotificationType:Event:AlarmCode:TripValue&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;TypesV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1_v1,type2_v1-type3_v1,!type4_v1, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;LevelV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,02-05,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationStatus&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 01-FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationType&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1,type2-type3,!type4, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Event&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,03-5A,!04,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: SMOKE, CO, TAMPER_ALARM, etc. Leave empty if you don't want to set an alarm code.&lt;br /&gt;
*&amp;lt;tt&amp;gt;TripValue&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 0 = Untrip, 1 = Trip, C = don't update the Tripped variable (only the Alarm Code), X = Ignore&lt;br /&gt;
&lt;br /&gt;
If the TypeV1 or NotificationType are not XX and if there was no match, the function will try the next token.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGroups&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, associate ourselves only with these groups, not all groups. The groups should be given as a comma separated list, like this:&lt;br /&gt;
 1,3,4,255&lt;br /&gt;
&lt;br /&gt;
You could add this variable with a value = 0 if you want to be in NO association groups.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreCommandClass&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows ignoring specific command classes (CC) for that device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC #1&amp;gt;-&amp;lt;Command #1&amp;gt;,&amp;lt;Command #2&amp;gt;;&amp;lt;CC #2&amp;gt;-*;&amp;lt;CC #3&amp;gt;-&amp;lt;Command #1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Both the command classes and the commands are given by their hex code.&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; is used as an wild card indicating all commands.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 26-03,05;71-*;20-03&lt;br /&gt;
&lt;br /&gt;
That means: ignore CC 26 commands 03 and 05, all commands from CC 71, and CC 20 command 03.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TemperatureScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the thermostat setpoint.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;Precision,Scale,Size&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*Precision: The number of decimals&lt;br /&gt;
*Scale: 0 = Celsius, 1 = Fahrenheit&lt;br /&gt;
*Size: Size of the setpoint in bits: number of bits = 2&amp;lt;sup&amp;gt;2+''Size''&amp;lt;/sup&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Size || Number of bits&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 16&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 32&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ZWaveNetwork1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveNetwork1&lt;br /&gt;
*'''File''': S_ZWaveNetwork1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The status of the Z-Wave network:&lt;br /&gt;
*0 = Status not set&lt;br /&gt;
*1 = OK&lt;br /&gt;
*2 = Quiting&lt;br /&gt;
*3 = Waiting to quit&lt;br /&gt;
*4 = No dongle&lt;br /&gt;
*5 = Configuring: still running init/configure scripts&lt;br /&gt;
*6 = Failure&lt;br /&gt;
*7 = Initializing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusText&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Full Z-Wave network status description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastError&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The last Z-Wave error in the network&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the Z-Wave component of the LuaUPnP engine started.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastDongleBackup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave dongle backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastHeal&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Z-Wave version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The unique ID of the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Role&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave specific stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TO3066&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the port where MiOS will search for the Z-Wave dongle. On Vera Lite, this is &amp;lt;tt&amp;gt;/dev/ttyS0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LockComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't search for the Z-Wave dongle on the other available ports if it doesn't find it on &amp;lt;tt&amp;gt;ComPort&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Use45&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use Z-Wave version 3.20 instead of 2.78.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UseMR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use MiOS routing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LimitNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | With MiOS routing: if this is &amp;quot;1&amp;quot;, when the routing table is created, consider only Z-Wave's neighbors as valid options.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically poll the Z-Wave devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds after the LuaUPnP engine has (re-)started before the polling loop begins.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds MiOS must not have transmitted any non-poll command before the next poll command is sent.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds between poll commands.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Minimum number of seconds between poll commands to the same node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneIDs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used for scene controllers. This is a CSV where each item has this format: &amp;lt;tt&amp;gt;node#-button#=ZWaveSceneID&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ResetNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ResetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Reset the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ResetMode&amp;lt;/tt&amp;gt; can be &amp;quot;SIS&amp;quot; or &amp;quot;SUC&amp;quot;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;HomeID&amp;lt;/tt&amp;gt; is a 32 bit hex number representing the new HomeID. If this parameter doesn't exist or is 0, MiOS will generate the new HomeID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ZeroMemory&amp;lt;/tt&amp;gt;: if this is &amp;quot;1&amp;quot;, the memory will be zeroed before resetting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ZeroMemory&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | PutByte&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Used to convert Z-Wave from 2.78 to 3.20 in which case the &amp;lt;tt&amp;gt;StartAddress&amp;lt;/tt&amp;gt; parameter must be &amp;quot;convert502_452&amp;quot; and the rest are ignored.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ReconfigureAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FailedOnly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the Z-Wave nodes. If &amp;lt;tt&amp;gt;FailedOnly&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, only the devices that failed to configure are reconfigured.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Get network update from SUC/SIS.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Update the neighbor nodes of the given device. &amp;lt;tt&amp;gt;Device&amp;lt;/tt&amp;gt; is the device number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | BackupDongle&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Restore&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Backs up the Z-Wave network. The backup is in &amp;lt;tt&amp;gt;/etc/cmh/dongle.dump&amp;lt;/tt&amp;gt;. If &amp;lt;tt&amp;gt;Restore&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, the Z-Wave network is restored from the backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | PollAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | RemoveNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | Puts Vera in exclude mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the exclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be excluded. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in exclude mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit exclude mode after a node is excluded.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits exclude mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | AddNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Puts Vera in include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the inclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be included. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in include mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit include mode after a node is included.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ControllerShift&amp;lt;/tt&amp;gt; must be &amp;quot;0&amp;quot;.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PK_KitDevice&amp;lt;/tt&amp;gt; is the KitDevice number of the device we expect to be included.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ControllerShift&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PK_KitDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DownloadNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Copy the Z-Wave network from a master controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | HealNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryMinutes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Heals/consolidates the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt;: how many minutes to wait for battery operated devices to be discovered.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Node&amp;lt;/tt&amp;gt; is not blank, then only this node will be repaired.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt; is the number of cycles to stress test each node.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Configure&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then all the devices will be re-configured when done.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;ManualRoute&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then only update MiOS routing (overrides other settings).&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt; is the starting heal stage. The valid values are:&lt;br /&gt;
**1 = Request network update.&lt;br /&gt;
**2 = Request neighbor node update.&lt;br /&gt;
**3 = Update the routing tables and neighbor nodes.&lt;br /&gt;
**4 = Calculate the best routes.&lt;br /&gt;
**5 = Re-configure all nodes.&lt;br /&gt;
**6 = Wait &amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt; to request neighbor node update and configure all battery operated nodes.&lt;br /&gt;
**7 = Do a stress test for &amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopStage&amp;lt;/tt&amp;gt;: Same as &amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StressCycles&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | SetPolling&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IsTemporary&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | Set the polling parameters.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;IsTemporary&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then these polling settings will be lost when the LuaUPnP engine is reloaded.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollingEnabled&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayInitial&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayDeadTime&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollMinDelay&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SendData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Sends the Z-Wave &amp;lt;code&amp;gt;Data&amp;lt;/code&amp;gt; to the Z-Wave &amp;lt;code&amp;gt;Node&amp;lt;/code&amp;gt;.&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
1. Set parameter 29 to &amp;quot;3&amp;quot; on node 15:&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=15&amp;amp;Data=x70%204%2029%201%203&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=15, Data=&amp;quot;x70 4 29 1 3&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Turn on a light (node 7):&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=7&amp;amp;Data=x20%201%20xFF&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=7, Data=&amp;quot;x20 1 xFF&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SimulateIncomingData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Calls the Z-Wave message handler for the given data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USBUIRT1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:USBUIRT1&lt;br /&gt;
*'''File''': S_USBUIRT.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the USB port the UIRT is connected to. On Vera Lite this is &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Camera1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Camera1&lt;br /&gt;
*'''File''': S_Camera1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VideoURLs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable defines the streaming parameters, and without it streaming doesn't work. This variable has this structure:&lt;br /&gt;
&amp;lt;tt&amp;gt;Info1:URL1:Info2:URL2:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt; parameters are:&lt;br /&gt;
&lt;br /&gt;
1. The protocol: can be &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. HTTP authentication required: 1 = yes, send the username and password in the request, 0 = no, don't send the username and password&lt;br /&gt;
&lt;br /&gt;
3. Video codec: &amp;lt;tt&amp;gt;mpeg4&amp;lt;/tt&amp;gt; &amp;amp;#124; &amp;lt;tt&amp;gt;mjpeg&amp;lt;/tt&amp;gt; &amp;amp;#124; etc.&lt;br /&gt;
&lt;br /&gt;
4. Audio codec: blank = no audio&lt;br /&gt;
&lt;br /&gt;
5. Resolution: &amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt; = thumbnail, &amp;lt;tt&amp;gt;s&amp;lt;/tt&amp;gt; = small, &amp;lt;tt&amp;gt;m&amp;lt;/tt&amp;gt; = medium, &amp;lt;tt&amp;gt;l&amp;lt;/tt&amp;gt; = large&lt;br /&gt;
&lt;br /&gt;
6. Width: 640&lt;br /&gt;
&lt;br /&gt;
7. Height: 480&lt;br /&gt;
&lt;br /&gt;
8. Players: &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;, a string of characters indicating known good players. &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt; = Quicktime plugin, &amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt; = Android, &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; = iPhone, &amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt; = normal web browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; is the streaming URL compatible with the players specified in &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Currently only the &amp;lt;tt&amp;gt;protocol&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;HTTP auth&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;players&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; parameters are used. The rest of the parameters are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;VideoURLs&amp;lt;/tt&amp;gt; example for VistaCam:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;rtsp,0,mpeg4,,m,640,480,qai:img/media.sav:http,0,mjpeg,,m,640,480,w:img/video.mjpeg:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the URL to get a snapshot from the camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RingBuffer&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable contains the ring buffer parameters.&lt;br /&gt;
The format is: &amp;lt;code&amp;gt;Enabled,BufferSeconds,NumFramesToPurge,Format,URL&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt; can be '''0''' or '''1'''. If it's '''1''', the ring buffer is enabled.&lt;br /&gt;
*&amp;lt;code&amp;gt;BufferSeconds&amp;lt;/code&amp;gt;: how many seconds of video to keep in the buffer. This is limited by the available memory on Vera. Setting this to a large value will cause instability.&lt;br /&gt;
*&amp;lt;code&amp;gt;NumFramesToPurge&amp;lt;/code&amp;gt;: how many frames to wait before attempting to purge.&lt;br /&gt;
*&amp;lt;code&amp;gt;Format&amp;lt;/code&amp;gt; can be '''2'''=MJPEG, '''3'''=MP4.&lt;br /&gt;
*&amp;lt;code&amp;gt;URL&amp;lt;/code&amp;gt; is the streaming URL.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedSensors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: archive a photo whenever one of the sensors is tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SensorArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many seconds to archive the video after the sensor(s) are tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedLights&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: which lights should be turned on when viewing this camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightOptions&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When to turn on the lights:&lt;br /&gt;
*&amp;lt;tt&amp;gt;V&amp;lt;/tt&amp;gt;: when I view the camera from the web or phone;&lt;br /&gt;
*&amp;lt;tt&amp;gt;S&amp;lt;/tt&amp;gt;: when the sensor(s) above are tripped and they are armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;: when the sensors above are tripped and they are *not* armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;: when you take an automatic picture for the archive;&lt;br /&gt;
&lt;br /&gt;
So &amp;lt;tt&amp;gt;VSBA&amp;lt;/tt&amp;gt; means do them all.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Archives a picture from the camera every this number of seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchivePreserveDays&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many days to keep the pictures in the archive.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Streams&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains a list separated by semicolons, where each element in the list has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;stream type&amp;amp;gt;,&amp;amp;lt;protocol&amp;amp;gt;,&amp;amp;lt;url&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The ''stream types'' currently supported are: &amp;lt;tt&amp;gt;flv&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;flv_low&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp_low&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The types with the &amp;quot;_low&amp;quot; suffix are the low bandwidth versions, and are used when streaming through the relay servers.&lt;br /&gt;
&lt;br /&gt;
*The supported ''protocols'' are: &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;flv,http,/img/media.flv;rtsp,rtsp,/img/media.sav;flv_low,http,/img/media.flv?stream=2;rtsp_low,rtsp,/img/media.sav?stream=2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PanTiltZoom1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:PanTiltZoom1&lt;br /&gt;
*'''File''': S_PanTiltZoom1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveLeft&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveRight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveUp&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveDown&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomIn&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomOut&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | GoToPreset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | presetNumber&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Moves the camera to the given preset.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SwitchPower1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:SwitchPower1&lt;br /&gt;
*'''File''': S_SwitchPower1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target state of the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The current state of the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target state of the device. Used to turn a device On or Off.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WindowCovering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:WindowCovering1&lt;br /&gt;
*'''File''': S_WindowCovering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Up&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Down&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stop&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dimming1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:Dimming1&lt;br /&gt;
*'''File''': S_Dimming1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target dimming value; it doesn't represent the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TurnOnBeforeDim&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicates that this device needs to turn on before setting the dimming level.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowZeroLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This device allows to set 0% level in ON state.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetLoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newLoadlevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired dimming level. Used to adjust the dimming level of a device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DoorLock1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:DoorLock1&lt;br /&gt;
*'''File''': S_DoorLock1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the target (desired) door state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current door state. &amp;quot;1&amp;quot; = locked, &amp;quot;0&amp;quot; = unlocked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of PIN codes.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=2&amp;gt;user_code_id,active,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=3&amp;gt;next_available_user_code_id\t&lt;br /&gt;
 user_code_id,active,date_added,date_used,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;VERSION&amp;lt;/tt&amp;gt; is used to track syntax changes.&lt;br /&gt;
*&amp;lt;tt&amp;gt;active&amp;lt;/tt&amp;gt; can be one of the following values:&lt;br /&gt;
**&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; = The code isn't programmed.&lt;br /&gt;
**&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''doesn't''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''does''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = The code is programmed into the lock and will be removed by software later.&lt;br /&gt;
**&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = The code is not programmed into the lock, but it will be programmed later by the software.&lt;br /&gt;
**&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt; = The code is programmed into the lock which supports hardware-based scheduling and will enable/disable it automatically.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid&amp;lt;/tt&amp;gt; is an auto-incrementing number.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid_lock&amp;lt;/tt&amp;gt; is the ID in the lock.&lt;br /&gt;
*The restriction type: '''&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;''' (''weekly'') or '''&amp;lt;tt&amp;gt;d&amp;lt;/tt&amp;gt;''' (''daily repeating'') = day of week based, '''&amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt;''' = time based (''yearly'')&lt;br /&gt;
*&amp;lt;tt&amp;gt;[d&amp;amp;#124;s]&amp;lt;/tt&amp;gt;: internal stuff.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumSchedules&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Maximum number of restrictions supported by the door lock.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 max_weekly,max_yearly,max_daily_repeating&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_weekly&amp;lt;/tt&amp;gt; is the number of weekly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_yearly&amp;lt;/tt&amp;gt; is the number of yearly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_daily_repeating&amp;lt;/tt&amp;gt; is the number of daily repeating restrictions slots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MinPinSize ''and'' MaxPinSize&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The minimum and maximum number of digits of the PIN code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the last used PIN code:&lt;br /&gt;
 UserID=&amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot; UserName=&amp;quot;&amp;lt;pin_code_name&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_PinFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This becomes &amp;quot;1&amp;quot; when a bad PIN code is entered.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_CodeChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockButton&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the Lock button has been pressed on the lock keypad.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the lock fails to operate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UnauthUser&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the user code was entered outside of a valid date.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_VeryLowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is very low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UsesPinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;0&amp;quot;, this door lock doesn't use PIN codes. (e.g. Danalock)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target (desired) state of the door. Used to lock and unlock the door.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCodeName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Adds a PIN code. This code will be added to the &amp;lt;code&amp;gt;PinCodes&amp;lt;/code&amp;gt; variable and to the door lock.&lt;br /&gt;
*&amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; is the PIN code name.&lt;br /&gt;
*&amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; is the new PIN code.&lt;br /&gt;
*&amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; is the PIN code slot number.&lt;br /&gt;
*&amp;lt;code&amp;gt;purge&amp;lt;/code&amp;gt;: if this is '''&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;''', all the schedules programmed into the door lock will be removed.&lt;br /&gt;
*&amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is a json that looks like this:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;user_code&amp;quot;&amp;amp;nbsp;: {&lt;br /&gt;
      &amp;quot;slot&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot;,        // Used when adding/updating a PIN code.&lt;br /&gt;
      &amp;quot;name&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;name&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;code&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_code&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;user&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;restriction_slot&amp;gt;&amp;quot; // Used when adding/updating restrictions.&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;weekly_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;136&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;12:34&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;23:45&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;25&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;13:46&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;21:09&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;daily_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
**''&amp;lt;tt&amp;gt;slot&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;If the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; parameter is present, &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; The parameters from &amp;lt;code&amp;gt;SetPinValidityDate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SetPinValidityWeekly&amp;lt;/code&amp;gt; are also accepted. Internally, this action calls the implementation functions of those actions if &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;, respectively &amp;lt;code&amp;gt;DayOfWeek&amp;lt;/code&amp;gt; parameters are given. The parameters in the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; take precedence over the other parameters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | user&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | purge&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | json&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityDate&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityWeekly&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetPinValidityDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Sets the daily time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartDate&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;StopDate&amp;lt;/tt&amp;gt; are strings representing the dates, formatted like this: &amp;lt;tt&amp;gt;YYYY-MM-DD HH:MM:SS&amp;lt;/tt&amp;gt; (SQL DATETIME)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityDate&amp;amp;UserCode=1&amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityDate&amp;amp;amp;UserCode=1&amp;amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPinValidityWeekly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Sets the weekly time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DayOfWeek&amp;lt;/tt&amp;gt; contains the days of week numbers when the PIN code is restricted. Monday is '&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;' and Sunday is '&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;'.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;tt&amp;gt;1367&amp;lt;/tt&amp;gt; means Monday, Wednesday, Saturday and Sunday.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartHour&amp;lt;/tt&amp;gt; is the hour the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartMinute&amp;lt;/tt&amp;gt; is the minute the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopHour&amp;lt;/tt&amp;gt; is the hour the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopMinute&amp;lt;/tt&amp;gt; is the minute the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityWeekly&amp;amp;UserCode=1&amp;amp;DayOfWeek=1367&amp;amp;StartHour=15&amp;amp;StartMinute=31&amp;amp;StopHour=16&amp;amp;StopMinute=42&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityWeekly&amp;amp;amp;UserCode=1&amp;amp;amp;DayOfWeek=1367&amp;amp;amp;StartHour=15&amp;amp;amp;StartMinute=31&amp;amp;amp;StopHour=16&amp;amp;amp;StopMinute=42&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DayOfWeek&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ClearPinValidity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Clears the given restriction slot.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;slotID&amp;lt;/tt&amp;gt; is the restriction slot number. The starting slot number is 1.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | slotID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ClearPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Removes the PIN code from slot &amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_UserOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_UserOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_UserOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired operating mode of the HVAC. Currently MiOS supports only:&lt;br /&gt;
*Off&lt;br /&gt;
*HeatOn&lt;br /&gt;
*CoolOn&lt;br /&gt;
*AutoChangeOver&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual operating mode of the HVAC.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired energy mode. Can be &amp;lt;tt&amp;gt;Normal&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;EnergySavingsMode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual energy mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, and if 0, the thermostat doesn't support auto mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired HVAC operating mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetEnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired energy mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_OperatingState1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HVAC_OperatingState1&lt;br /&gt;
*'''File''': S_HVAC_OperatingState1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents what the HVAC is actually doing right now. The most common actions are:&lt;br /&gt;
*Idle&lt;br /&gt;
*Heating&lt;br /&gt;
*Cooling&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_FanOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_FanOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_FanOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The fan operation mode. Can be:&lt;br /&gt;
*Auto&lt;br /&gt;
*ContinuousOn&lt;br /&gt;
*PeriodicOn&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FanStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current fan state; can be ''On'' or ''Off''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the fan operating mode. Changes the Mode variable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TemperatureSetpoint1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSetpoint1&lt;br /&gt;
*'''File''': S_TemperatureSetpoint1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetpointTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllSetpoints&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma separated list containing the current setpoints for the following thermostat modes: heat, cool, auto.&lt;br /&gt;
Format: &amp;lt;code&amp;gt;HEAT,COOL,AUTO&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;AllSetpoints = 72,74,73&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*72 = heating setpoint&lt;br /&gt;
*74 = cooling setpoint&lt;br /&gt;
*73 = auto mode setpoint&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, the thermostat doesn't support auto setpoint, so set heat+cool this many degrees +/-&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReportMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | char&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;quot;M&amp;quot; = The report correspond to the current mode of operation and should update the setpoint in the received mode (default),&lt;br /&gt;
&amp;quot;S&amp;quot; = The report correspond to the current operating state and should update the setpoint in the current mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Range&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reject setpoint change commands whose setpoint is outside the specified range.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt;;RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where each range has this format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,C&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;/F&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,F&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The range limits are inclusive, meaning the new setpoint must be &amp;gt;= X&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;lt;= X&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;14,34/58,92;16,44/60,112;-1,32/30,90&amp;lt;/code&amp;gt;&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;auto&amp;lt;/sub&amp;gt; = 14,34/58,92: this means that the '''auto''' setpoint must be between 14 and 34 if it's in Celsius, and between 58 and 92 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;cool&amp;lt;/sub&amp;gt; = 16,44/60,112: this means that the '''cool''' setpoint must be between 16 and 44 if it's in Celsius, and between 60 and 112 if it's in Fahrenheit.&lt;br /&gt;
* RANGE&amp;lt;sub&amp;gt;heat&amp;lt;/sub&amp;gt; = -1,32/30,90: this means that the '''heat''' setpoint must be between -1 and 32 if it's in Celsius, and between 30 and 90 if it's in Fahrenheit.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target setpoint.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TemperatureSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSensor1&lt;br /&gt;
*'''File''': S_TemperatureSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentTemperature&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GenericSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:GenericSensor1&lt;br /&gt;
*'''File''': S_GenericSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LightSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:LightSensor1&lt;br /&gt;
*'''File''': S_LightSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HumiditySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HumiditySensor1&lt;br /&gt;
*'''File''': S_HumiditySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SecuritySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SecuritySensor1&lt;br /&gt;
*'''File''': S_SecuritySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Tripped&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used by MiOS as a way to disable sending notifications when a sensor is tripped/untripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the UNIX time when the sensor last reported that it was tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreTripTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used to filter trip events, the value specify the time in seconds of the filter, internally it will record the last event and after the time has elapsed it will set the variable Tripped to the last known event recorded.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoUntrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used for those devices that doesn't send the Untrip command and requires to automatically untrip after certain time. The value correspond to the time in seconds that the controller will set the Tripped variable to 0 after a Trip event. To disable this feature, set the variable to 0 or remove it from the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetArmed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newArmedValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Arms or disarms the sensor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EnergyMetering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:EnergyMetering1&lt;br /&gt;
*'''File''': S_EnergyMetering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Watts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If the device can report its wattage, this is the value reported by the device, otherwise this is the value supplied by the user in &amp;lt;tt&amp;gt;UserSupliedWattage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Pulse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserSuppliedWattage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | See &amp;lt;tt&amp;gt;Watts&amp;lt;/tt&amp;gt;.&lt;br /&gt;
'''Note:''' For thermostats, &amp;lt;tt&amp;gt;UserSuppliedWattage&amp;lt;/tt&amp;gt; consists of 3 numbers separated by commas. The default is 1500,1500,300. The first number is how many watts are used when the thermostat is in 'heat' mode; the second is how many watts are used when the thermostat is in 'cool' mode; and the third number is for the 'fan only' mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | KWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Log&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of values:&lt;br /&gt;
&amp;lt;code&amp;gt;CurrentConsumption,Average,Peak,LastReading,Seconds&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*''LastReading'' is the Unix time.&lt;br /&gt;
*''Seconds'' is the period of time the ''Average'' value was computed for.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ResetKWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrTransmitter1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrTransmitter1&lt;br /&gt;
*'''File''': S_IrTransmitter1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SendProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sends the given IR code.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SerialPort1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-org:serviceId:SerialPort1&lt;br /&gt;
*'''File''': S_SerialPort1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | path&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the serial port. On Vera Lite it's &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | baud&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The baud rate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | stopbits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of stop bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | databits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of data bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | parity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Can be &amp;lt;tt&amp;gt;odd&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;even&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SceneController1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneController1&lt;br /&gt;
*'''File''': S_SceneController1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneActivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the activated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneDeactivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the deactivated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scenes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The scene ID (as reported by the scene controller) of the last activated or deactivated scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the scene was last activated or deactivated.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManageLeds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, automatically turn on/off the scene indicator lights.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumButtons&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;NumberOfButtons[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,etc.]]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*'''ButtonNumber''' must be from 1 to ''NumberOfButtons''.&lt;br /&gt;
*'''AssociationNumber''' is the association group.&lt;br /&gt;
*'''SceneNumber''' is an event ID, and it's sent instead of the one we program.&lt;br /&gt;
*'''ButtonName''' is the user friendly name of the button.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2,1-1-1=Tap Button,2-2-2=Hold Button&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ButtonMapping&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;OldButtonNumber-Attribute-NewButtonNumber[,OldButtonNumber-Attribute-NewButtonNumber[,etc.]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where '''Attribute''' has the following meaning:&lt;br /&gt;
&lt;br /&gt;
*0 = Key pressed&lt;br /&gt;
*1 = Key is released, sent only as a termination of a Key Held Down sequence&lt;br /&gt;
*2 = Key held down&lt;br /&gt;
*3 = Key double tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
*4 = Key triple tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; These attributes were added in COMMAND_CLASS_CENTRAL_SCENE V2, so it's not available on all the scene controllers.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1-0-1,1-3-2,2-0-3,2-3-4,3-0-5,3-3-6,4-0-7,4-3-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneShortcuts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FiresOffEvents&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ActivationMethod&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave stuff.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SceneControllerLED1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneControllerLED1&lt;br /&gt;
*'''File''': S_SceneControllerLED1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The lights' state. The lower 4 bits of &amp;lt;tt&amp;gt;LightSettings&amp;lt;/tt&amp;gt; are the 4 green LEDs, and the upper 4 are the 4 red LEDs. So, 10001 is an orange light, 110010 is an orange light and a red, etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SetLight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Change a light's state.&lt;br /&gt;
*&amp;lt;tt&amp;gt;newValue&amp;lt;/tt&amp;gt; is the new light state. The valid values are:&lt;br /&gt;
**0 = off&lt;br /&gt;
**1 = green&lt;br /&gt;
**2 = red&lt;br /&gt;
**3 = orange&lt;br /&gt;
*&amp;lt;tt&amp;gt;Indicator&amp;lt;/tt&amp;gt; is the button number.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicator&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrDevice1&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrDevice1&lt;br /&gt;
*'''File''': S_IrDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codesets&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | SendCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Button&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Repeat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Color1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Color1&lt;br /&gt;
*'''File''': S_Color1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Variable&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| CurrentColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| TargetColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ColorMode&lt;br /&gt;
| string&lt;br /&gt;
| Currently used only for Revogi.&lt;br /&gt;
Can have only 2 values:&lt;br /&gt;
*0 = Colorful mode&lt;br /&gt;
*1 = Color temperature mode&lt;br /&gt;
|-&lt;br /&gt;
| ColorChannelPriorities&lt;br /&gt;
| string&lt;br /&gt;
| Specify the color channel priorities like this:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;gt;1&amp;gt;2,3,4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That value can be interpretted like this: channel 0 has priority over channel 1, which has priority over channels 2, 3 and 4.&lt;br /&gt;
|-&lt;br /&gt;
| SupportedColors&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions</id>
		<title>Luup UPnP Variables and Actions</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_UPnP_Variables_and_Actions"/>
				<updated>2017-08-01T12:07:09Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /* ZWaveDevice1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of all the UPnP actions and variables used by MiOS.&lt;br /&gt;
&lt;br /&gt;
Some actions and variables have self-explanatory names, so there's a dash ('-') instead of the description.&lt;br /&gt;
&lt;br /&gt;
== HomeAutomationGateway1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HomeAutomationGateway1&lt;br /&gt;
*'''File''': S_HomeAutomationGateway1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataVersion&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A number that increases each time the data changes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Unique Device Name of the UPnP device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reload the LuaUPnP engine.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ModifyUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | inUserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Make changes to the UserData.&lt;br /&gt;
*&amp;lt;tt&amp;gt;inUserData&amp;lt;/tt&amp;gt; is the new UserData object which will be added to the UserData or will replace an existent UserData object.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DataFormat&amp;lt;/tt&amp;gt; must be ''json''.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is ''1'' the LuaUPnP engine will reload after the UserData is modified.&lt;br /&gt;
&lt;br /&gt;
For more information read the [[ModifyUserData]] page.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DataFormat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Create or change the value of a variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; can be an UDN or a number.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Service&amp;lt;/tt&amp;gt; is the service ID of the variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Variable&amp;lt;/tt&amp;gt; is the variable name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Value&amp;lt;/tt&amp;gt; is the new variable value.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Service&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Variable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | RunScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Run the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SceneOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Turn off all the devices from DEVICE_CATEGORY_DIMMABLE_LIGHT and DEVICE_CATEGORY_SWITCH from the given scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | RunLua&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int or string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Run the given Lua code. If &amp;lt;tt&amp;gt;DeviceNum&amp;lt;/tt&amp;gt; is specified, the code is run using that device's interface.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Code&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | CreateDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | deviceType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;14&amp;quot; | Create a device using the given parameters.&lt;br /&gt;
*&amp;lt;tt&amp;gt;deviceType&amp;lt;/tt&amp;gt; is the UPnP device type.&lt;br /&gt;
*&amp;lt;tt&amp;gt;internalID&amp;lt;/tt&amp;gt; is the specific ID (also known as ''altid'') of the device; for example, for Z-Wave devices this is the Node ID, and for Insteon device it is the Insteon ID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Description&amp;lt;/tt&amp;gt; is the device name, which is shown to the user on the dashboard.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpDevFilename&amp;lt;/tt&amp;gt; is the UPnP device description file name.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UpnpImplFilename&amp;lt;/tt&amp;gt; is the implementation file to use.&lt;br /&gt;
*If the device is IP based, &amp;lt;tt&amp;gt;IpAddress&amp;lt;/tt&amp;gt; is the IP address and port of the device.&lt;br /&gt;
*If this should be the child of another device, &amp;lt;tt&amp;gt;DeviceNumParent&amp;lt;/tt&amp;gt; is the device number of the parent device.&lt;br /&gt;
*&amp;lt;tt&amp;gt;RoomNum&amp;lt;/tt&amp;gt; is the number of the room the device will be in.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; tells the device which plugin to use. The plugin will be installed automatically if it's not already installed.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; is a string containing the variables you want set when the device is created. You can specify multiple variables by separating them with a line feed ('\n'), and use ',' and '=' to separate service, variable and value, like this: &amp;lt;tt&amp;gt;service,variable=value\nservice,variable=value\n&amp;lt;/tt&amp;gt;...&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is '''1''', the Luup engine will be restarted after the device is created.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | internalID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpDevFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UpnpImplFilename&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Username&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Password&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNumParent&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | DeleteDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Delete the device given either through its number, or through its UDN.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | CreatePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Create a plugin with the &amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt; number and &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; version. &amp;lt;tt&amp;gt;StateVariables&amp;lt;/tt&amp;gt; are the variables that will be set when the device is created. For more information look at the description of the '''CreateDevice''' action above.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Version&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DeletePlugin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Uninstall the given plugin.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | CreatePluginDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PluginNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Creates a device for plugin #&amp;lt;tt&amp;gt;PluginNum&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StateVariables&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ImportUpnpDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RoomNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DeviceNum&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | LogIpRequest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IpAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MacAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UDN&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetHouseMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Changes the house mode.&lt;br /&gt;
&amp;lt;tt&amp;gt;Mode&amp;lt;/tt&amp;gt; can be:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = Home&lt;br /&gt;
*&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = Away&lt;br /&gt;
*&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = Night&lt;br /&gt;
*&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = Vacation&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HaDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HaDevice1&lt;br /&gt;
*'''File''': S_HaDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CommFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is set to ''1'' if we've lost communication with the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The configuration state of the device:&lt;br /&gt;
*-3 = Configuration failed&lt;br /&gt;
*-2 = Configuration in progress&lt;br /&gt;
*-1 = Device waiting to be configured&lt;br /&gt;
*0 = Device not configured&lt;br /&gt;
*1 = Device successfully configured&lt;br /&gt;
*2 = Device partially configured&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoConfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically check the routing info for this every 12 hours.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The battery level reported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the &amp;lt;tt&amp;gt;BatteryLevel&amp;lt;/tt&amp;gt; was reported.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeCheck&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Only for devices that are capable of implementing time, this is when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTimeOffset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | For &amp;lt;tt&amp;gt;LastTimeCheck&amp;lt;/tt&amp;gt;, this is the timezone offset from UTC when the time was last checked.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device information was last updated. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FirstConfigured&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is when the device was first configured. (Mostly used for Z-Wave devices)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreRoom&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used only by the MiOS scene controller. Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Commands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of &amp;lt;tt&amp;gt;ControlCodes&amp;lt;/tt&amp;gt; for the enabled UI controls. If the &amp;lt;tt&amp;gt;ControlCode&amp;lt;/tt&amp;gt; of an UI control (e.g. button) is not in this list, the button will be disabled (greyed out). If this variable is missing, all controls will be enabled. If this variable is empty, all controls will be disabled.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IODevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The device number to connect to for IO. (this is on the master device)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IOPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The port to receive connections on from &amp;lt;tt&amp;gt;IODevice&amp;lt;/tt&amp;gt;. (this is on the serial port)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReverseOnOff&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, the commands for some devices are reversed (e.g. the On command will turn the device Off, and vice versa). Not all devices support this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_Alarm&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Currently used only by the water leak sensor, contains the alarm code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeSetting&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains the state of the device for each house mode.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;&amp;lt;house mode&amp;gt;:&amp;lt;state&amp;gt;;...&lt;br /&gt;
&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is empty, the sensor is disarmed/bypassed.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;state&amp;lt;/tt&amp;gt; is &amp;quot;A&amp;quot;, the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1:;2:A;3:A;4:A&lt;br /&gt;
&lt;br /&gt;
*In &amp;lt;tt&amp;gt;Home&amp;lt;/tt&amp;gt;(1) mode the sensor is disarmed;&lt;br /&gt;
*in &amp;lt;tt&amp;gt;Away&amp;lt;/tt&amp;gt;(2), &amp;lt;tt&amp;gt;Night&amp;lt;/tt&amp;gt;(3) and &amp;lt;tt&amp;gt;Vacation&amp;lt;/tt&amp;gt;(4) modes the sensor is armed.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Children&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma separated list of KitDevice numbers.&lt;br /&gt;
LuaUPnP will create a child device for every item in the list, with the specified KitDevice properties.&lt;br /&gt;
&lt;br /&gt;
Can be used to add children to devices which don't have MultiChannel support.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the polls are doing, where 5.0 means that the last 50 polls were successful and 0.0 means that all the last 50 polls were unsuccessful.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupRatings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | double&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a measure of how well the wakeups are being received, where 5.0 means that the we received the last 50 wakeups when they have suppose to be sent and 0.0 means that we didn't receive any of the 50 last wakeups that the device should have sent&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''See the description of this variable in ZWaveDevice1 section, because it should belong to the service urn:micasaverde-com:serviceId:ZWaveDevice1, but it was kept in urn:micasaverde-com:serviceId:HaDevice1 to maintain backward compatibility.'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeConfiguration&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Implementation of custom preset modes for any device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;[&amp;amp;#124;&amp;lt;mode code&amp;gt;;&amp;lt;mode name&amp;gt;;&amp;lt;upnp_action&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;upnp_action&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;service&amp;amp;gt;/&amp;amp;lt;action&amp;amp;gt;/&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;amp;lt;parameters&amp;amp;gt;&amp;lt;/tt&amp;gt; = &amp;lt;code&amp;gt;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;[&amp;amp;&amp;amp;lt;paramName&amp;amp;gt;=&amp;amp;lt;value&amp;amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the value is '?', it means that it's a wildcard and the ''ModeSettings'' variable should contain a comma separated list of values in order to substitute this '?' wildcard. If the value is not '?', then the value is fixed and it should be URL encoded.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 h;h code;urn:upnp-org:serviceId:SwitchPower1/SetTarget/newTargetValue=?&amp;amp;otherParameter=45&amp;amp;another=?&amp;amp;#124;s;s code;urn:upnp-org:serviceId:Dimming1/SetTargetLevel/newLevel=34&amp;amp;other=?&amp;amp;another=4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CustomModeControls&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used to tell the UI what controls to show in the House modes configuration page for the actions in the ''CustomModeConfiguration'' variable.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;;&amp;lt;control info for arg #2&amp;gt;;..;&amp;lt;control info for arg #N&amp;gt;[&amp;amp;#124;&amp;lt;mode&amp;gt;:&amp;lt;control info for arg #1&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | StressTest&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stress test the Z-Wave device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Remove the device from the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Poll the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ToggleState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Toggle the state of the device (e.g. if the device it's Off, turns it On). The device must have a binary state (On/Off, Locked/Unlocked, etc.).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ZWaveDevice1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveDevice1&lt;br /&gt;
*'''File''': S_ZWaveDevice1.xml ''(nonexistent)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the polling frequency for a node (i.e. the minimum number of seconds between two poll commands to the same node). If this variable doesn't exist or is blank, the default polling frequency set in the &amp;lt;tt&amp;gt;ZWaveNetwork1&amp;lt;/tt&amp;gt;'s &amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt; variable will be used. If it's '''0''', polling will be disabled for this node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollCommands&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of command classes/commands to poll. '&amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt;' means the device won't respond to any poll.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChEndpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MultiChCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Neighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbor devices' node IDs. '1' is the Vera's node ID.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NeighborsInverse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the neighbors that see us.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Capabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The first 6 numbers in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are what is reported by the &amp;lt;tt&amp;gt;ZW_GetNodeProtocolInfo&amp;lt;/tt&amp;gt; function: Capability, Security, Reserved, Basic Device Class [, Generic Device Class, Specific Device Class]. If the &amp;lt;tt&amp;gt;Capability&amp;lt;/tt&amp;gt; is &amp;gt;= 128, then the device listens for commands, otherwise it's a battery operated device that only wakes up occasionally. After the '&amp;amp;#124;' in &amp;lt;tt&amp;gt;Capabilities&amp;lt;/tt&amp;gt; are the command classes supported. More information here: [[ZWave Command Classes]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SecurityFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't talk to this node with security even if the node reports it can.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastReset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When we last reset the node association. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | WakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How often this battery operated device should wake up to report its status. The default value is 1800 seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredWakeupInterval&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The wakeup interval already configured on the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastWakeup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device last woke up and reported its status. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastRouteUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When this device's routing information was last checked/updated. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Health&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A rating from 0-5. A large number means that MiOS can communicate with it easily.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HealthDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The date the rating was assigned. (UNIX time)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings read from the device.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number,variable1_value,variable2_number,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VariablesSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is a comma-separated list of the configuration settings set by the user.&lt;br /&gt;
The format is:&lt;br /&gt;
&lt;br /&gt;
 variable1_number-variable1_description,variable1_data_type,variable1_value,variable2_number-variable2_description,variable2_data_type,variable2_value,...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This are the association settings read from the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationSet&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave associations for a device are stored in this variable.&lt;br /&gt;
The associations are delimited by ';', 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 IDs, not device IDs (ie the 'altid' in the UI). If the node ID is 'z', it means the node ID of the device for which the variable is set.&lt;br /&gt;
&lt;br /&gt;
For multi-channel there is a '.' following the node ID with the endpoint ID.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 1,3.4,7;2,5.1,8&lt;br /&gt;
&lt;br /&gt;
Means group #1 is associated with node #3 endpoint #4 and with node #7, which is non-multi-channel; group #2 is associated with node #5 endpoint #1, and with node #8.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationNum&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of association groups supported by the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NonceACK&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManufacturerInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device information. Format:&lt;br /&gt;
 ManufacturerID,ProductType,ProductID&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is what's reported by the COMMAND_CLASS_VERSION command VERSION_REPORT. There are 5 values: Z-Wave Library Type, Z-Wave Protocol Version, Z-Wave Protocol Sub Version, Application Version, Application Sub Version. The &amp;lt;tt&amp;gt;Application Version&amp;lt;/tt&amp;gt; is specific to the device and not defined by Z-Wave.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetPointInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma-separated list of the supported setpoint types:&lt;br /&gt;
*&amp;lt;tt&amp;gt;H1&amp;lt;/tt&amp;gt; = Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C1&amp;lt;/tt&amp;gt; = Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;F1&amp;lt;/tt&amp;gt; = Furnace&lt;br /&gt;
*&amp;lt;tt&amp;gt;D1&amp;lt;/tt&amp;gt; = Dry Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;MA&amp;lt;/tt&amp;gt; = Moist Air&lt;br /&gt;
*&amp;lt;tt&amp;gt;AC&amp;lt;/tt&amp;gt; = Auto changeover&lt;br /&gt;
*&amp;lt;tt&amp;gt;H2&amp;lt;/tt&amp;gt; = Energy Save Heating&lt;br /&gt;
*&amp;lt;tt&amp;gt;C2&amp;lt;/tt&amp;gt; = Energy Save Cooling&lt;br /&gt;
*&amp;lt;tt&amp;gt;AH&amp;lt;/tt&amp;gt; = Away Heating&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of the command classes supported by this device. (hexadecimal numbers)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InitialName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The name that was initially set when the node was first added.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified name when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredVariable&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;VariablesSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ConfiguredAssoc&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The user-specified &amp;lt;tt&amp;gt;AssociationSet&amp;lt;/tt&amp;gt; when we configured the node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Documentation&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL of the documentation used on the ''Device Options'' page.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The meter type:&lt;br /&gt;
*1 = electric&lt;br /&gt;
*2 = gas&lt;br /&gt;
*3 = water&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MeterScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A bit map of the supported meter scales.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | List of the supported alarm types.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollOk, PollTxFail, PollNoReply&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | These variables are incremented each time the last poll job has the status they describe. They are reset after each network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A route specified by the end-user. This is a '''dot'''-separated list of nodes.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllRoutesFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when all the manual routes have failed.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This contains a list of various routes chosen by profilings.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 route1_node1.route1_node2...-route1_score[x],route2_node1.route2_node2...-route2_score[x],...&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;score&amp;lt;/tt&amp;gt; is a measure of latency and accuracy, the lower the number, the better. '&amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;' means that the last attempt to use this route failed, so it won't be used anymore.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreDirectScene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SwitchMlSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BasicSetCapabilities&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining actions for BASIC_SET messages.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Value&amp;gt;=&amp;lt;Action&amp;gt;&amp;lt;Endpoint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*Value &amp;amp;nbsp;: the BASIC_SET Value; if Value is &amp;quot;XX&amp;quot;, it means any value&lt;br /&gt;
*Action &amp;amp;nbsp;: the Action to perform; the supported values are: T&amp;lt;tt&amp;gt;=Trip&amp;lt;/tt&amp;gt;, U&amp;lt;tt&amp;gt;=Untrip&amp;lt;/tt&amp;gt;, O&amp;lt;tt&amp;gt;=On&amp;lt;/tt&amp;gt;, F&amp;lt;tt&amp;gt;=Off&amp;lt;/tt&amp;gt;, D&amp;lt;tt&amp;gt;=Dim&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Endpoint &amp;amp;nbsp;: the Endpoint device ID (altid); if Endpoint=0, it means the parent node, or the current node if the device has no children&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=Ue1,FF=Te1&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Untrip endpoint &amp;quot;e1&amp;quot;; if receive 0xFF, Trip endpoint &amp;quot;e1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;XX=D02&amp;lt;/code&amp;gt; =&amp;gt; Dim endpoint 02 to whatever value received&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;00=T0,FF=U0&amp;lt;/code&amp;gt; =&amp;gt; if receive 0x00, Trip the current node; if receive 0xFF, Untrip the current node&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SupportedMRTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows defining which meter report types are supported by the device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;;&amp;lt;CC Hex&amp;gt;-&amp;lt;Supported Type&amp;gt;,&amp;lt;Supported Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*CC Hex &amp;amp;nbsp;: the Hex value of the command class (without 0x):&lt;br /&gt;
**0x31 for COMMAND_CLASS_SENSOR_MULTILEVEL&lt;br /&gt;
**0x32 for COMMAND_CLASS_METER&lt;br /&gt;
*Supported Type &amp;amp;nbsp;: The HEX value of the type supported for the Command class without 0x&lt;br /&gt;
**Supported types for COMMAND_CLASS_SENSOR_MULTILEVEL:&lt;br /&gt;
***Temperature = 0x01&lt;br /&gt;
***General = 0x02&lt;br /&gt;
***Luminance = 0x03&lt;br /&gt;
***Power = 0x04&lt;br /&gt;
***RelativeHumidity = 0x05&lt;br /&gt;
***Velocity = 0x06&lt;br /&gt;
***Direction = 0x07&lt;br /&gt;
***AtmosphericPressure = 0x08&lt;br /&gt;
***BarometricPressure = 0x09&lt;br /&gt;
***SolarRadiation = 0x0A&lt;br /&gt;
***DewPoint = 0x0B&lt;br /&gt;
***RainRate = 0x0C&lt;br /&gt;
***TideLevel = 0x0D&lt;br /&gt;
***Weight = 0x0E&lt;br /&gt;
***Voltage = 0x0F&lt;br /&gt;
***Current = 0x10&lt;br /&gt;
***CO2level = 0x11&lt;br /&gt;
***AirFlow = 0x12&lt;br /&gt;
***TankCapacity = 0x13&lt;br /&gt;
***Distance = 0x14&lt;br /&gt;
***SeismicIntensity = 0x19&lt;br /&gt;
***UltraViolet = 0x1B&lt;br /&gt;
&lt;br /&gt;
**Supported types for COMMAND_CLASS_METER:&lt;br /&gt;
***Electric=0x01&lt;br /&gt;
***Gas=0x02&lt;br /&gt;
***Water=0x03&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;31-0F,0E,10,1B;32-01,03&amp;lt;/code&amp;gt; =&amp;gt; Device supports Voltage, Weight, Current and UltraViolet for COMMAND_CLASS_SENSOR_MULTILEVEL and Electric and Water from COMMAND_CLASS_METER&lt;br /&gt;
&lt;br /&gt;
If the variable is empty it will be treated as support anything. If the variable does not contain a command class that command class will be treated as support everything.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NoChildren&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this variable is '''1''', delete the child devices, and don't allow the creation of other child devices, to avoid creating ghost devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | '''(NOTE: this is its new service. ''urn:micasaverde-com:serviceId:HaDevice1'' was left unchanged to mantain backward compatibility.)'''&lt;br /&gt;
Allows setting what each Alarm Type does for devices using COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION. The format is:&lt;br /&gt;
&lt;br /&gt;
 AlarmTypes:AlarmLevels:AlarmCode:Action;AlarmTypes:AlarmLevels:AlarmCode:Action&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmTypes&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;type1,type2-type3,!type4&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmLevels&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;00,01,05-20,!FF&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;SMOKE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TAMPER_ALARM&amp;lt;/code&amp;gt;, etc.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Action&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; = don't update the ''Tripped'' variable, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; = update the ''Tripped'' variable, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; = ignore the message (i.e. don't update the ''sl_Alarm'' variable)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 01:FF:SMOKE:1;0C:FF::1;0D:FF:TAMPER_ALARM:0&lt;br /&gt;
&lt;br /&gt;
*if Alarm Type is ''0x01'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;SMOKE&amp;quot; and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0C'' and the Alarm Level is ''0xFF'', don't update the ''sl_Alarm'' variable, and trip the sensor&lt;br /&gt;
*if Alarm Type is ''0x0D'' and the Alarm Level is ''0xFF'', then set the ''sl_Alarm'' variable to &amp;quot;TAMPER_ALARM&amp;quot;, but don't trip the sensor&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AlarmTypesV2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows customizing the handling of the COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION &amp;gt;= v2 messages.&lt;br /&gt;
The format is a ';' separated list of tokens. Format of each token:&lt;br /&gt;
&lt;br /&gt;
 TypesV1:LevelV1:NotificationStatus:NotificationType:Event:AlarmCode:TripValue&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;TypesV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1_v1,type2_v1-type3_v1,!type4_v1, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;LevelV1&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,02-05,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationStatus&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 01-FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;NotificationType&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: type1,type2-type3,!type4, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Event&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 00,01,03-5A,!04,!FF, XX (don't care)&lt;br /&gt;
*&amp;lt;tt&amp;gt;AlarmCode&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: SMOKE, CO, TAMPER_ALARM, etc. Leave empty if you don't want to set an alarm code.&lt;br /&gt;
*&amp;lt;tt&amp;gt;TripValue&amp;lt;/tt&amp;gt;&amp;amp;nbsp;: 0 = Untrip, 1 = Trip, C = don't update the Tripped variable (only the Alarm Code), X = Ignore&lt;br /&gt;
&lt;br /&gt;
If the TypeV1 or NotificationType are not XX and if there was no match, the function will try the next token.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AssociationGroups&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, associate ourselves only with these groups, not all groups. The groups should be given as a comma separated list, like this:&lt;br /&gt;
 1,3,4,255&lt;br /&gt;
&lt;br /&gt;
You could add this variable with a value = 0 if you want to be in NO association groups.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreCommandClass&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Allows ignoring specific command classes (CC) for that device.&lt;br /&gt;
Format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;CC #1&amp;gt;-&amp;lt;Command #1&amp;gt;,&amp;lt;Command #2&amp;gt;;&amp;lt;CC #2&amp;gt;-*;&amp;lt;CC #3&amp;gt;-&amp;lt;Command #1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Both the command classes and the commands are given by their hex code.&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; is used as an wild card indicating all commands.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 26-03,05;71-*;20-03&lt;br /&gt;
&lt;br /&gt;
That means: ignore CC 26 commands 03 and 05, all commands from CC 71, and CC 20 command 03.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TemperatureScale&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the thermostat setpoint.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;Precision,Scale,Size&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*Precision: The number of decimals&lt;br /&gt;
*Scale: 0 = Celsius, 1 = Fahrenheit&lt;br /&gt;
*Size: Size of the setpoint in bits: number of bits = 2&amp;lt;sup&amp;gt;2+''Size''&amp;lt;/sup&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Size || Number of bits&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 16&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 32&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ZWaveNetwork1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:ZWaveNetwork1&lt;br /&gt;
*'''File''': S_ZWaveNetwork1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The status of the Z-Wave network:&lt;br /&gt;
*0 = Status not set&lt;br /&gt;
*1 = OK&lt;br /&gt;
*2 = Quiting&lt;br /&gt;
*3 = Waiting to quit&lt;br /&gt;
*4 = No dongle&lt;br /&gt;
*5 = Configuring: still running init/configure scripts&lt;br /&gt;
*6 = Failure&lt;br /&gt;
*7 = Initializing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NetStatusText&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Full Z-Wave network status description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastError&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The last Z-Wave error in the network&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastUpdate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the Z-Wave component of the LuaUPnP engine started.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastDongleBackup&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave dongle backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastHeal&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time of the last Z-Wave network heal.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VersionInfo&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The Z-Wave version.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The unique ID of the Z-Wave network.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Role&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave specific stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TO3066&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Internal stuff.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the port where MiOS will search for the Z-Wave dongle. On Vera Lite, this is &amp;lt;tt&amp;gt;/dev/ttyS0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LockComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS won't search for the Z-Wave dongle on the other available ports if it doesn't find it on &amp;lt;tt&amp;gt;ComPort&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Use45&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use Z-Wave version 3.20 instead of 2.78.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UseMR&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, use MiOS routing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LimitNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | With MiOS routing: if this is &amp;quot;1&amp;quot;, when the routing table is created, consider only Z-Wave's neighbors as valid options.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, MiOS will automatically poll the Z-Wave devices.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds after the LuaUPnP engine has (re-)started before the polling loop begins.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds MiOS must not have transmitted any non-poll command before the next poll command is sent.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Number of seconds between poll commands.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Minimum number of seconds between poll commands to the same node.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneIDs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Used for scene controllers. This is a CSV where each item has this format: &amp;lt;tt&amp;gt;node#-button#=ZWaveSceneID&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | ResetNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ResetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Reset the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ResetMode&amp;lt;/tt&amp;gt; can be &amp;quot;SIS&amp;quot; or &amp;quot;SUC&amp;quot;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;HomeID&amp;lt;/tt&amp;gt; is a 32 bit hex number representing the new HomeID. If this parameter doesn't exist or is 0, MiOS will generate the new HomeID.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ZeroMemory&amp;lt;/tt&amp;gt;: if this is &amp;quot;1&amp;quot;, the memory will be zeroed before resetting.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | HomeID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ZeroMemory&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | PutByte&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | Used to convert Z-Wave from 2.78 to 3.20 in which case the &amp;lt;tt&amp;gt;StartAddress&amp;lt;/tt&amp;gt; parameter must be &amp;quot;convert502_452&amp;quot; and the rest are ignored.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopAddress&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Value&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ReconfigureAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FailedOnly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Reconfigure the Z-Wave nodes. If &amp;lt;tt&amp;gt;FailedOnly&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, only the devices that failed to configure are reconfigured.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Get network update from SUC/SIS.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | UpdateNeighbors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Device&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Update the neighbor nodes of the given device. &amp;lt;tt&amp;gt;Device&amp;lt;/tt&amp;gt; is the device number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | BackupDongle&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Restore&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Backs up the Z-Wave network. The backup is in &amp;lt;tt&amp;gt;/etc/cmh/dongle.dump&amp;lt;/tt&amp;gt;. If &amp;lt;tt&amp;gt;Restore&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, the Z-Wave network is restored from the backup.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | PollAllNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | RemoveNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;5&amp;quot; | Puts Vera in exclude mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the exclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be excluded. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in exclude mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit exclude mode after a node is excluded.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits exclude mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | AddNodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | InclusionMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Puts Vera in include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;InclusionMode&amp;lt;/tt&amp;gt; can be &amp;quot;FullPower&amp;quot; or anything else, in which case the inclusion will be low power.&lt;br /&gt;
*&amp;lt;tt&amp;gt;NodeType&amp;lt;/tt&amp;gt; is the type of node to be included. The valid values are:&lt;br /&gt;
**1 = any&lt;br /&gt;
**2 = controller&lt;br /&gt;
**3 = slave&lt;br /&gt;
**4 = existing&lt;br /&gt;
**5 = stop&lt;br /&gt;
*&amp;lt;tt&amp;gt;Timeout&amp;lt;/tt&amp;gt; is the number of seconds Vera will be in include mode.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Multiple&amp;lt;/tt&amp;gt; is &amp;quot;0&amp;quot; then Vera will exit include mode after a node is included.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ControllerShift&amp;lt;/tt&amp;gt; must be &amp;quot;0&amp;quot;.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Reload&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot; the LuaUPnP engine will be restarted after Vera exits include mode.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PK_KitDevice&amp;lt;/tt&amp;gt; is the KitDevice number of the device we expect to be included.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NodeType&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Timeout&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Multiple&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ControllerShift&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reload&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PK_KitDevice&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | DownloadNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Copy the Z-Wave network from a master controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | HealNetwork&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | BatteryMinutes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Heals/consolidates the Z-Wave network.&lt;br /&gt;
*&amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt;: how many minutes to wait for battery operated devices to be discovered.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Node&amp;lt;/tt&amp;gt; is not blank, then only this node will be repaired.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt; is the number of cycles to stress test each node.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;Configure&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then all the devices will be re-configured when done.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;ManualRoute&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then only update MiOS routing (overrides other settings).&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt; is the starting heal stage. The valid values are:&lt;br /&gt;
**1 = Request network update.&lt;br /&gt;
**2 = Request neighbor node update.&lt;br /&gt;
**3 = Update the routing tables and neighbor nodes.&lt;br /&gt;
**4 = Calculate the best routes.&lt;br /&gt;
**5 = Re-configure all nodes.&lt;br /&gt;
**6 = Wait &amp;lt;tt&amp;gt;BatteryMinutes&amp;lt;/tt&amp;gt; to request neighbor node update and configure all battery operated nodes.&lt;br /&gt;
**7 = Do a stress test for &amp;lt;tt&amp;gt;StressCycles&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopStage&amp;lt;/tt&amp;gt;: Same as &amp;lt;tt&amp;gt;StartStage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StressCycles&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Configure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManualRoute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopStage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | SetPolling&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IsTemporary&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;6&amp;quot; | Set the polling parameters.&lt;br /&gt;
*If &amp;lt;tt&amp;gt;IsTemporary&amp;lt;/tt&amp;gt; is &amp;quot;1&amp;quot;, then these polling settings will be lost when the LuaUPnP engine is reloaded.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollingEnabled&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayInitial&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollDelayDeadTime&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollMinDelay&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
*&amp;lt;tt&amp;gt;PollFrequency&amp;lt;/tt&amp;gt;: see the related variable.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollingEnabled&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayInitial&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollDelayDeadTime&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollMinDelay&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PollFrequency&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SendData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Node&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Sends the Z-Wave &amp;lt;code&amp;gt;Data&amp;lt;/code&amp;gt; to the Z-Wave &amp;lt;code&amp;gt;Node&amp;lt;/code&amp;gt;.&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
1. Set parameter 29 to &amp;quot;3&amp;quot; on node 15:&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=15&amp;amp;Data=x70%204%2029%201%203&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=15, Data=&amp;quot;x70 4 29 1 3&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Turn on a light (node 7):&lt;br /&gt;
&lt;br /&gt;
*HTTP request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/data_request?id=action&amp;amp;DeviceNum=1&amp;amp;serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;amp;action=SendData&amp;amp;Node=7&amp;amp;Data=x20%201%20xFF&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Lua:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;luup.call_action(&amp;quot;urn:micasaverde-com:serviceId:ZWaveNetwork1&amp;quot;, &amp;quot;SendData&amp;quot;, {Node=7, Data=&amp;quot;x20 1 xFF&amp;quot;}, 1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SimulateIncomingData&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Data&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Calls the Z-Wave message handler for the given data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USBUIRT1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:USBUIRT1&lt;br /&gt;
*'''File''': S_USBUIRT.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ComPort&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the USB port the UIRT is connected to. On Vera Lite this is &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Camera1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Camera1&lt;br /&gt;
*'''File''': S_Camera1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | VideoURLs&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable defines the streaming parameters, and without it streaming doesn't work. This variable has this structure:&lt;br /&gt;
&amp;lt;tt&amp;gt;Info1:URL1:Info2:URL2:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt; parameters are:&lt;br /&gt;
&lt;br /&gt;
1. The protocol: can be &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. HTTP authentication required: 1 = yes, send the username and password in the request, 0 = no, don't send the username and password&lt;br /&gt;
&lt;br /&gt;
3. Video codec: &amp;lt;tt&amp;gt;mpeg4&amp;lt;/tt&amp;gt; &amp;amp;#124; &amp;lt;tt&amp;gt;mjpeg&amp;lt;/tt&amp;gt; &amp;amp;#124; etc.&lt;br /&gt;
&lt;br /&gt;
4. Audio codec: blank = no audio&lt;br /&gt;
&lt;br /&gt;
5. Resolution: &amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt; = thumbnail, &amp;lt;tt&amp;gt;s&amp;lt;/tt&amp;gt; = small, &amp;lt;tt&amp;gt;m&amp;lt;/tt&amp;gt; = medium, &amp;lt;tt&amp;gt;l&amp;lt;/tt&amp;gt; = large&lt;br /&gt;
&lt;br /&gt;
6. Width: 640&lt;br /&gt;
&lt;br /&gt;
7. Height: 480&lt;br /&gt;
&lt;br /&gt;
8. Players: &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt;&amp;amp;#124;&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;, a string of characters indicating known good players. &amp;lt;tt&amp;gt;q&amp;lt;/tt&amp;gt; = Quicktime plugin, &amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt; = Android, &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; = iPhone, &amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt; = normal web browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;The &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; is the streaming URL compatible with the players specified in &amp;lt;tt&amp;gt;Info&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Currently only the &amp;lt;tt&amp;gt;protocol&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;HTTP auth&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;players&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;URL&amp;lt;/tt&amp;gt; parameters are used. The rest of the parameters are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;VideoURLs&amp;lt;/tt&amp;gt; example for VistaCam:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;rtsp,0,mpeg4,,m,640,480,qai:img/media.sav:http,0,mjpeg,,m,640,480,w:img/video.mjpeg:&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | URL&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the URL to get a snapshot from the camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RingBuffer&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable contains the ring buffer parameters.&lt;br /&gt;
The format is: &amp;lt;code&amp;gt;Enabled,BufferSeconds,NumFramesToPurge,Format,URL&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Enabled&amp;lt;/code&amp;gt; can be '''0''' or '''1'''. If it's '''1''', the ring buffer is enabled.&lt;br /&gt;
*&amp;lt;code&amp;gt;BufferSeconds&amp;lt;/code&amp;gt;: how many seconds of video to keep in the buffer. This is limited by the available memory on Vera. Setting this to a large value will cause instability.&lt;br /&gt;
*&amp;lt;code&amp;gt;NumFramesToPurge&amp;lt;/code&amp;gt;: how many frames to wait before attempting to purge.&lt;br /&gt;
*&amp;lt;code&amp;gt;Format&amp;lt;/code&amp;gt; can be '''2'''=MJPEG, '''3'''=MP4.&lt;br /&gt;
*&amp;lt;code&amp;gt;URL&amp;lt;/code&amp;gt; is the streaming URL.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedSensors&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: archive a photo whenever one of the sensors is tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SensorArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many seconds to archive the video after the sensor(s) are tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | RelatedLights&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of device numbers: which lights should be turned on when viewing this camera.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightOptions&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | When to turn on the lights:&lt;br /&gt;
*&amp;lt;tt&amp;gt;V&amp;lt;/tt&amp;gt;: when I view the camera from the web or phone;&lt;br /&gt;
*&amp;lt;tt&amp;gt;S&amp;lt;/tt&amp;gt;: when the sensor(s) above are tripped and they are armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;: when the sensors above are tripped and they are *not* armed;&lt;br /&gt;
*&amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;: when you take an automatic picture for the archive;&lt;br /&gt;
&lt;br /&gt;
So &amp;lt;tt&amp;gt;VSBA&amp;lt;/tt&amp;gt; means do them all.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchiveSeconds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Archives a picture from the camera every this number of seconds.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoArchivePreserveDays&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | How many days to keep the pictures in the archive.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Streams&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains a list separated by semicolons, where each element in the list has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;lt;stream type&amp;amp;gt;,&amp;amp;lt;protocol&amp;amp;gt;,&amp;amp;lt;url&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The ''stream types'' currently supported are: &amp;lt;tt&amp;gt;flv&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;flv_low&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp_low&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The types with the &amp;quot;_low&amp;quot; suffix are the low bandwidth versions, and are used when streaming through the relay servers.&lt;br /&gt;
&lt;br /&gt;
*The supported ''protocols'' are: &amp;lt;tt&amp;gt;http&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;rtsp&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;flv,http,/img/media.flv;rtsp,rtsp,/img/media.sav;flv_low,http,/img/media.flv?stream=2;rtsp_low,rtsp,/img/media.sav?stream=2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PanTiltZoom1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:PanTiltZoom1&lt;br /&gt;
*'''File''': S_PanTiltZoom1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveLeft&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveRight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveUp&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | MoveDown&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomIn&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ZoomOut&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | GoToPreset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | presetNumber&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Moves the camera to the given preset.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SwitchPower1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:SwitchPower1&lt;br /&gt;
*'''File''': S_SwitchPower1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target state of the device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The current state of the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target state of the device. Used to turn a device On or Off.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WindowCovering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:WindowCovering1&lt;br /&gt;
*'''File''': S_WindowCovering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Up&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Down&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Stop&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dimming1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:Dimming1&lt;br /&gt;
*'''File''': S_Dimming1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target dimming value; it doesn't represent the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the actual dimming state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | TurnOnBeforeDim&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicates that this device needs to turn on before setting the dimming level.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllowZeroLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This device allows to set 0% level in ON state.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetLoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newLoadlevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LoadLevelTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired dimming level. Used to adjust the dimming level of a device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DoorLock1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:DoorLock1&lt;br /&gt;
*'''File''': S_DoorLock1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the target (desired) door state.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Status&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current door state. &amp;quot;1&amp;quot; = locked, &amp;quot;0&amp;quot; = unlocked&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | PinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The list of PIN codes.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=2&amp;gt;user_code_id,active,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VERSION=3&amp;gt;next_available_user_code_id\t&lt;br /&gt;
 user_code_id,active,date_added,date_used,PIN_code(encrypted),name(a-z,0-9);&lt;br /&gt;
 slot,slot_lock,w,[d&amp;amp;#124;s],dow,hour_start,minute_start,hour_stop,minute_stop;&lt;br /&gt;
 slot,slot_lock,t,[d&amp;amp;#124;s],start,stop;\t&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;VERSION&amp;lt;/tt&amp;gt; is used to track syntax changes.&lt;br /&gt;
*&amp;lt;tt&amp;gt;active&amp;lt;/tt&amp;gt; can be one of the following values:&lt;br /&gt;
**&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; = The code isn't programmed.&lt;br /&gt;
**&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''doesn't''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; = The code is permanently programmed into the lock, which '''does''' support hardware-based scheduling.&lt;br /&gt;
**&amp;lt;tt&amp;gt;3&amp;lt;/tt&amp;gt; = The code is programmed into the lock and will be removed by software later.&lt;br /&gt;
**&amp;lt;tt&amp;gt;4&amp;lt;/tt&amp;gt; = The code is not programmed into the lock, but it will be programmed later by the software.&lt;br /&gt;
**&amp;lt;tt&amp;gt;5&amp;lt;/tt&amp;gt; = The code is programmed into the lock which supports hardware-based scheduling and will enable/disable it automatically.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid&amp;lt;/tt&amp;gt; is an auto-incrementing number.&lt;br /&gt;
*The &amp;lt;tt&amp;gt;slotid_lock&amp;lt;/tt&amp;gt; is the ID in the lock.&lt;br /&gt;
*The restriction type: '''&amp;lt;tt&amp;gt;w&amp;lt;/tt&amp;gt;''' (''weekly'') or '''&amp;lt;tt&amp;gt;d&amp;lt;/tt&amp;gt;''' (''daily repeating'') = day of week based, '''&amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt;''' = time based (''yearly'')&lt;br /&gt;
*&amp;lt;tt&amp;gt;[d&amp;amp;#124;s]&amp;lt;/tt&amp;gt;: internal stuff.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumSchedules&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Maximum number of restrictions supported by the door lock.&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;br /&gt;
 max_weekly,max_yearly,max_daily_repeating&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_weekly&amp;lt;/tt&amp;gt; is the number of weekly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_yearly&amp;lt;/tt&amp;gt; is the number of yearly restrictions slots.&lt;br /&gt;
*&amp;lt;tt&amp;gt;max_daily_repeating&amp;lt;/tt&amp;gt; is the number of daily repeating restrictions slots.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | MinPinSize ''and'' MaxPinSize&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The minimum and maximum number of digits of the PIN code.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Contains information about the last used PIN code:&lt;br /&gt;
 UserID=&amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot; UserName=&amp;quot;&amp;lt;pin_code_name&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_PinFailed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This becomes &amp;quot;1&amp;quot; when a bad PIN code is entered.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_CodeChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockButton&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the Lock button has been pressed on the lock keypad.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockFailure&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the lock fails to operate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_UnauthUser&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; if the user code was entered outside of a valid date.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LockChanged&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If a PIN code was changed using the lock keypad, this contains the PIN code index number.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_LowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_VeryLowBattery&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is &amp;quot;1&amp;quot; when the battery level is very low.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UsesPinCodes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;0&amp;quot;, this door lock doesn't use PIN codes. (e.g. Danalock)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newTargetValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Target&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target (desired) state of the door. Used to lock and unlock the door.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCodeName&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Adds a PIN code. This code will be added to the &amp;lt;code&amp;gt;PinCodes&amp;lt;/code&amp;gt; variable and to the door lock.&lt;br /&gt;
*&amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; is the PIN code name.&lt;br /&gt;
*&amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; is the new PIN code.&lt;br /&gt;
*&amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; is the PIN code slot number.&lt;br /&gt;
*&amp;lt;code&amp;gt;purge&amp;lt;/code&amp;gt;: if this is '''&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;''', all the schedules programmed into the door lock will be removed.&lt;br /&gt;
*&amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is a json that looks like this:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;user_code&amp;quot;&amp;amp;nbsp;: {&lt;br /&gt;
      &amp;quot;slot&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_slot&amp;gt;&amp;quot;,        // Used when adding/updating a PIN code.&lt;br /&gt;
      &amp;quot;name&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;name&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;code&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;pin_code&amp;gt;&amp;quot;,&lt;br /&gt;
      &amp;quot;user&amp;quot;&amp;amp;nbsp;: &amp;quot;&amp;lt;restriction_slot&amp;gt;&amp;quot; // Used when adding/updating restrictions.&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;weekly_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;136&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;12:34&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;23:45&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;day_of_week&amp;quot;&amp;amp;nbsp;: &amp;quot;25&amp;quot;&lt;br /&gt;
          &amp;quot;from_time&amp;quot;&amp;amp;nbsp;: &amp;quot;13:46&amp;quot;&lt;br /&gt;
          &amp;quot;to_time&amp;quot;&amp;amp;nbsp;: &amp;quot;21:09&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;daily_schedules&amp;quot;&amp;amp;nbsp;: [&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
          &amp;quot;start_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
          &amp;quot;stop_date&amp;quot;&amp;amp;nbsp;: &amp;quot;YYYY-MM-DD HH:MM:SS&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
      ...&lt;br /&gt;
  ]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
**''&amp;lt;tt&amp;gt;slot&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt;&lt;br /&gt;
**''&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt;'' in &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;If the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; parameter is present, &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;UserCodeName&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;newPin&amp;lt;/code&amp;gt; are ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; The parameters from &amp;lt;code&amp;gt;SetPinValidityDate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SetPinValidityWeekly&amp;lt;/code&amp;gt; are also accepted. Internally, this action calls the implementation functions of those actions if &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;, respectively &amp;lt;code&amp;gt;DayOfWeek&amp;lt;/code&amp;gt; parameters are given. The parameters in the &amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt; take precedence over the other parameters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | user&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | purge&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | json&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityDate&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | &amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt;SetPinValidityWeekly&amp;lt;/tt&amp;gt; parameters&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | SetPinValidityDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;4&amp;quot; | Sets the daily time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartDate&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;StopDate&amp;lt;/tt&amp;gt; are strings representing the dates, formatted like this: &amp;lt;tt&amp;gt;YYYY-MM-DD HH:MM:SS&amp;lt;/tt&amp;gt; (SQL DATETIME)&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityDate&amp;amp;UserCode=1&amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityDate&amp;amp;amp;UserCode=1&amp;amp;amp;StartDate=2012-09-03%2014:00:00&amp;amp;amp;StopDate=2012-09-03%2015:00:00&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopDate&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | SetPinValidityWeekly&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;7&amp;quot; | Sets the weekly time interval in which a PIN code is valid.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;DayOfWeek&amp;lt;/tt&amp;gt; contains the days of week numbers when the PIN code is restricted. Monday is '&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;' and Sunday is '&amp;lt;tt&amp;gt;7&amp;lt;/tt&amp;gt;'.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;tt&amp;gt;1367&amp;lt;/tt&amp;gt; means Monday, Wednesday, Saturday and Sunday.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartHour&amp;lt;/tt&amp;gt; is the hour the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StartMinute&amp;lt;/tt&amp;gt; is the minute the restriction starts at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopHour&amp;lt;/tt&amp;gt; is the hour the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;StopMinute&amp;lt;/tt&amp;gt; is the minute the restriction stops at.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Replace&amp;lt;/tt&amp;gt;: If this parameter is &amp;quot;1&amp;quot; the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.&lt;br /&gt;
&lt;br /&gt;
Example: [http://192.168.81.1:3480/data_request?id=action&amp;amp;DeviceNum=6&amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;action=SetPinValidityWeekly&amp;amp;UserCode=1&amp;amp;DayOfWeek=1367&amp;amp;StartHour=15&amp;amp;StartMinute=31&amp;amp;StopHour=16&amp;amp;StopMinute=42&amp;amp;Replace=1 http://192.168.81.1:3480/data_request?id=action&amp;amp;amp;DeviceNum=6&amp;amp;amp;serviceId=urn:micasaverde-com:serviceId:DoorLock1&amp;amp;amp;action=SetPinValidityWeekly&amp;amp;amp;UserCode=1&amp;amp;amp;DayOfWeek=1367&amp;amp;amp;StartHour=15&amp;amp;amp;StartMinute=31&amp;amp;amp;StopHour=16&amp;amp;amp;StopMinute=42&amp;amp;amp;Replace=1]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | DayOfWeek&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StartMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopHour&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | StopMinute&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Replace&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | ClearPinValidity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Clears the given restriction slot.&lt;br /&gt;
*&amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt; is the PIN code slot number. The starting slot number is 1.&lt;br /&gt;
*&amp;lt;tt&amp;gt;slotID&amp;lt;/tt&amp;gt; is the restriction slot number. The starting slot number is 1.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | slotID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ClearPin&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Removes the PIN code from slot &amp;lt;tt&amp;gt;UserCode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_UserOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_UserOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_UserOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired operating mode of the HVAC. Currently MiOS supports only:&lt;br /&gt;
*Off&lt;br /&gt;
*HeatOn&lt;br /&gt;
*CoolOn&lt;br /&gt;
*AutoChangeOver&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual operating mode of the HVAC.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The desired energy mode. Can be &amp;lt;tt&amp;gt;Normal&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;EnergySavingsMode&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual energy mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, and if 0, the thermostat doesn't support auto mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired HVAC operating mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetEnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | EnergyModeTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the desired energy mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_OperatingState1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HVAC_OperatingState1&lt;br /&gt;
*'''File''': S_HVAC_OperatingState1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ModeState&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents what the HVAC is actually doing right now. The most common actions are:&lt;br /&gt;
*Idle&lt;br /&gt;
*Heating&lt;br /&gt;
*Cooling&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HVAC_FanOperatingMode1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:HVAC_FanOperatingMode1&lt;br /&gt;
*'''File''': S_HVAC_FanOperatingMode1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The fan operation mode. Can be:&lt;br /&gt;
*Auto&lt;br /&gt;
*ContinuousOn&lt;br /&gt;
*PeriodicOn&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FanStatus&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Represents the current fan state; can be ''On'' or ''Off''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Mode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the fan operating mode. Changes the Mode variable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TemperatureSetpoint1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSetpoint1&lt;br /&gt;
*'''File''': S_TemperatureSetpoint1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SetpointTarget&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The target temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The actual temperature setpoint for the current thermostat mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AllSetpoints&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | A comma separated list containing the current setpoints for the following thermostat modes: heat, cool, auto.&lt;br /&gt;
Format: &amp;lt;code&amp;gt;HEAT,COOL,AUTO&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;AllSetpoints = 72,74,73&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*72 = heating setpoint&lt;br /&gt;
*74 = cooling setpoint&lt;br /&gt;
*73 = auto mode setpoint&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If specified, the thermostat doesn't support auto setpoint, so set heat+cool this many degrees +/-&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ReportMode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | char&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;quot;M&amp;quot; = The report correspond to the current mode of operation and should update the setpoint in the received mode (default),&lt;br /&gt;
&amp;quot;S&amp;quot; = The report correspond to the current operating state and should update the setpoint in the current mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Range&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Reject setpoint change commands whose setpoint is outside the specified range.&lt;br /&gt;
Format:&lt;br /&gt;
&amp;lt;code&amp;gt;C&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,C&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;/F&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;,F&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The range limits are inclusive, meaning the new setpoint must be &amp;gt;= X&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;lt;= X&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;-15,99/5,210&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NewCurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentSetpoint&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sets the target setpoint.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TemperatureSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:upnp-org:serviceId:TemperatureSensor1&lt;br /&gt;
*'''File''': S_TemperatureSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentTemperature&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GenericSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:GenericSensor1&lt;br /&gt;
*'''File''': S_GenericSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LightSensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:LightSensor1&lt;br /&gt;
*'''File''': S_LightSensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== HumiditySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:HumiditySensor1&lt;br /&gt;
*'''File''': S_HumiditySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | CurrentLevel&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SecuritySensor1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SecuritySensor1&lt;br /&gt;
*'''File''': S_SecuritySensor1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Tripped&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used by MiOS as a way to disable sending notifications when a sensor is tripped/untripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastTrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is the UNIX time when the sensor last reported that it was tripped.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | IgnoreTripTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used to filter trip events, the value specify the time in seconds of the filter, internally it will record the last event and after the time has elapsed it will set the variable Tripped to the last known event recorded.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | AutoUntrip&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | i4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This is used for those devices that doesn't send the Untrip command and requires to automatically untrip after certain time. The value correspond to the time in seconds that the controller will set the Tripped variable to 0 after a Trip event. To disable this feature, set the variable to 0 or remove it from the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SetArmed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newArmedValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Armed&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Arms or disarms the sensor.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EnergyMetering1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:EnergyMetering1&lt;br /&gt;
*'''File''': S_EnergyMetering1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Watts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If the device can report its wattage, this is the value reported by the device, otherwise this is the value supplied by the user in &amp;lt;tt&amp;gt;UserSupliedWattage&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Pulse&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | UserSuppliedWattage&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | See &amp;lt;tt&amp;gt;Watts&amp;lt;/tt&amp;gt;.&lt;br /&gt;
'''Note:''' For thermostats, &amp;lt;tt&amp;gt;UserSuppliedWattage&amp;lt;/tt&amp;gt; consists of 3 numbers separated by commas. The default is 1500,1500,300. The first number is how many watts are used when the thermostat is in 'heat' mode; the second is how many watts are used when the thermostat is in 'cool' mode; and the third number is for the 'fan only' mode.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | KWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; | -&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Log&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Comma separated list of values:&lt;br /&gt;
&amp;lt;code&amp;gt;CurrentConsumption,Average,Peak,LastReading,Seconds&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*''LastReading'' is the Unix time.&lt;br /&gt;
*''Seconds'' is the period of time the ''Average'' value was computed for.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | ResetKWH&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000;  text-align: center&amp;quot; colspan=&amp;quot;2&amp;quot; | none&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrTransmitter1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrTransmitter1&lt;br /&gt;
*'''File''': S_IrTransmitter1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | SendProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ProntoCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;1&amp;quot; | Sends the given IR code.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SerialPort1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-org:serviceId:SerialPort1&lt;br /&gt;
*'''File''': S_SerialPort1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | path&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The path of the serial port. On Vera Lite it's &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | baud&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The baud rate.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | stopbits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of stop bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | databits&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of data bits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | parity&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Can be &amp;lt;tt&amp;gt;odd&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;even&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SceneController1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneController1&lt;br /&gt;
*'''File''': S_SceneController1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneActivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the activated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | sl_SceneDeactivated&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui2&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The number of the deactivated scene on the scene controller.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scenes&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneID&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The scene ID (as reported by the scene controller) of the last activated or deactivated scene.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LastSceneTime&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The UNIX time when the scene was last activated or deactivated.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ManageLeds&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | If this is &amp;quot;1&amp;quot;, automatically turn on/off the scene indicator lights.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | NumButtons&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;NumberOfButtons[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,etc.]]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*'''ButtonNumber''' must be from 1 to ''NumberOfButtons''.&lt;br /&gt;
*'''AssociationNumber''' is the association group.&lt;br /&gt;
*'''SceneNumber''' is an event ID, and it's sent instead of the one we program.&lt;br /&gt;
*'''ButtonName''' is the user friendly name of the button.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2,1-1-1=Tap Button,2-2-2=Hold Button&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ButtonMapping&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | This variable has the following format:&lt;br /&gt;
&amp;lt;code&amp;gt;OldButtonNumber-Attribute-NewButtonNumber[,OldButtonNumber-Attribute-NewButtonNumber[,etc.]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where '''Attribute''' has the following meaning:&lt;br /&gt;
&lt;br /&gt;
*0 = Key pressed&lt;br /&gt;
*1 = Key is released, sent only as a termination of a Key Held Down sequence&lt;br /&gt;
*2 = Key held down&lt;br /&gt;
*3 = Key double tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
*4 = Key triple tapped &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; These attributes were added in COMMAND_CLASS_CENTRAL_SCENE V2, so it's not available on all the scene controllers.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1-0-1,1-3-2,2-0-3,2-3-4,3-0-5,3-3-6,4-0-7,4-3-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | SceneShortcuts&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | FiresOffEvents&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | boolean&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &amp;amp;nbsp;?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ActivationMethod&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Z-Wave stuff.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SceneControllerLED1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:SceneControllerLED1&lt;br /&gt;
*'''File''': S_SceneControllerLED1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | LightSettings&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui1&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | The lights' state. The lower 4 bits of &amp;lt;tt&amp;gt;LightSettings&amp;lt;/tt&amp;gt; are the 4 green LEDs, and the upper 4 are the 4 red LEDs. So, 10001 is an orange light, 110010 is an orange light and a red, etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | SetLight&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | newValue&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Change a light's state.&lt;br /&gt;
*&amp;lt;tt&amp;gt;newValue&amp;lt;/tt&amp;gt; is the new light state. The valid values are:&lt;br /&gt;
**0 = off&lt;br /&gt;
**1 = green&lt;br /&gt;
**2 = red&lt;br /&gt;
**3 = orange&lt;br /&gt;
*&amp;lt;tt&amp;gt;Indicator&amp;lt;/tt&amp;gt; is the button number.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Indicator&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | ui4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrDevice1&amp;lt;br/&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:IrDevice1&lt;br /&gt;
*'''File''': S_IrDevice1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; | Variable&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 60px&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codesets&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | int&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Scene&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | string&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000;  border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 150px&amp;quot; rowspan=&amp;quot;2&amp;quot; | Action&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; colspan=&amp;quot;2&amp;quot; | Arguments&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;2&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 130px&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;border: 1px solid #000;  width: 140px&amp;quot; | Type or Related Variable&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | SendCode&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Codeset&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; rowspan=&amp;quot;3&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Button&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Repeat&lt;br /&gt;
| style=&amp;quot;border: 1px solid #000&amp;quot; | Remote&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Color1 ==&lt;br /&gt;
&lt;br /&gt;
*'''Service ID''': urn:micasaverde-com:serviceId:Color1&lt;br /&gt;
*'''File''': S_Color1.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Variable&lt;br /&gt;
! Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| CurrentColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| TargetColor&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ColorMode&lt;br /&gt;
| string&lt;br /&gt;
| Currently used only for Revogi.&lt;br /&gt;
Can have only 2 values:&lt;br /&gt;
*0 = Colorful mode&lt;br /&gt;
*1 = Color temperature mode&lt;br /&gt;
|-&lt;br /&gt;
| ColorChannelPriorities&lt;br /&gt;
| string&lt;br /&gt;
| Specify the color channel priorities like this:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;gt;1&amp;gt;2,3,4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That value can be interpretted like this: channel 0 has priority over channel 1, which has priority over channels 2, 3 and 4.&lt;br /&gt;
|-&lt;br /&gt;
| SupportedColors&lt;br /&gt;
| string&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Device_Categories</id>
		<title>Luup Device Categories</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Device_Categories"/>
				<updated>2017-07-21T11:05:44Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Device categories and subcategories mapping.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category&lt;br /&gt;
! Device Type&lt;br /&gt;
! Subcategory&lt;br /&gt;
! Device Type&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Dimmable Light&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Bulb&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Plugged&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Colored&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Switch&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Exterior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Refrigerator&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| Garage Door&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Doorbell&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Security Sensor&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Door Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Leak Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Motion Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Smoke Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| CO Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Glass Break Sensor&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | HVAC&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Heater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Custom HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Camera&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Door Lock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 8&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Window Covering&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Window Covering&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| ZRTSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 9&lt;br /&gt;
| Remote Control&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 10&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | IR Transmitter&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| IR Transmitter&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| USB UIRT&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 11&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Generic I/O&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Generic I/O&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Repeater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 12&lt;br /&gt;
| Generic Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 13&lt;br /&gt;
| Serial Port&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 14&lt;br /&gt;
| Scene Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 15&lt;br /&gt;
| A/V&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 16&lt;br /&gt;
| Humidity Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 17&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 18&lt;br /&gt;
| Light Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 19&lt;br /&gt;
| Z-Wave Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 20&lt;br /&gt;
| Insteon Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 21&lt;br /&gt;
| Power Meter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 22&lt;br /&gt;
| Alarm Panel&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 23&lt;br /&gt;
| Alarm Partition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 24&lt;br /&gt;
| Siren&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 25&lt;br /&gt;
| Weather&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 26&lt;br /&gt;
| Philips Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 27&lt;br /&gt;
| Appliance&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 28&lt;br /&gt;
| UV Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 29&lt;br /&gt;
| Mouse Trap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 30&lt;br /&gt;
| Water Valve&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Device_Categories</id>
		<title>Luup Device Categories</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Device_Categories"/>
				<updated>2017-07-21T10:53:25Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Device categories and subcategories mapping.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category&lt;br /&gt;
! Device Type&lt;br /&gt;
! Subcategory&lt;br /&gt;
! Device Type&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | Dimmable Light&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Bulb&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Plugged&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Colored&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Switch&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Interior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Exterior&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| In Wall&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Refrigerator&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| Garage Door&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Doorbell&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | Security Sensor&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Door Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Leak Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Motion Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 4&lt;br /&gt;
| Smoke Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| CO Sensor&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Glass Break Sensor&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 5&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | HVAC&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Heater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 3&lt;br /&gt;
| Custom HVAC&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 6&lt;br /&gt;
| Camera&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 7&lt;br /&gt;
| Door Lock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 8&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Window Covering&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Window Covering&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| ZRTSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 9&lt;br /&gt;
| Remote Control&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 10&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | IR Transmitter&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| IR Transmitter&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| USB UIRT&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot; | 11&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | Generic I/O&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 1&lt;br /&gt;
| Generic I/O&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 2&lt;br /&gt;
| Repeater&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 12&lt;br /&gt;
| Generic Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 13&lt;br /&gt;
| Serial Port&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 14&lt;br /&gt;
| Scene Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 15&lt;br /&gt;
| A/V&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 16&lt;br /&gt;
| Humidity Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 17&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 18&lt;br /&gt;
| Light Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 19&lt;br /&gt;
| Z-Wave Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 20&lt;br /&gt;
| Insteon Interface&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 21&lt;br /&gt;
| Power Meter&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 22&lt;br /&gt;
| Alarm Panel&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 23&lt;br /&gt;
| Alarm Partition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 24&lt;br /&gt;
| Siren&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 25&lt;br /&gt;
| Weather&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 26&lt;br /&gt;
| Philips Controller&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 27&lt;br /&gt;
| Appliance&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 28&lt;br /&gt;
| UV Sensor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center&amp;quot; | 29&lt;br /&gt;
| Mouse Trap&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mcvflorin</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>2017-06-28T13:17:17Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[http://apps.mios.com 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'''''. '''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt;'''&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt; the other visibility types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt; &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;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''IMPORTANT:''' &amp;lt;/span&amp;gt;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. &amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' the other release types are not implemented yet.&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&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;
The '''Destination path''' is were the file will be downloaded on Vera. The path is relative to '''/etc/cmh-ludl''', which is the default path. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(255, 0, 0);&amp;quot;&amp;gt;'''Note:''' The path '''must''' start and end with ''''/''' '.&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
e.g. If I want a file to go in ''/www/cmh/skins/default/icons'', the path will be: '''''/../../www/cmh/skins/default/icons/'''''&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>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Declarations</id>
		<title>Luup Declarations</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Declarations"/>
				<updated>2017-06-16T12:57:36Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /*  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
When the Luup engine calls your Lua code it will pass your code some variables relevant to whatever the code is supposed to do.  You can see how your code looks with the full function declarations by bringing up this page in a web browser: http://IP_of_Vera:3480/data_request?id=lua&amp;amp;DeviceNum=8&lt;br /&gt;
&lt;br /&gt;
Here is a list of the variables that are passed to your Lua code, and also a list of what return values the Lua code should send back.  The tag names are explained here: [[Luup_Plugins_ByHand#The_Luup_XML_implementation_file|The Luup XML implementation file]].&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;run&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: &amp;lt;code&amp;gt;lul_device&amp;lt;/code&amp;gt; is a number that is the device ID. &amp;lt;code&amp;gt;lul_settings&amp;lt;/code&amp;gt; is a table with all the arguments to the action. &lt;br /&gt;
&lt;br /&gt;
return value: ''true'' or ''false'' where ''true'' means the function ran ok, ''false'' means it failed. &lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SetTarget_run(lul_device, lul_settings)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue))&lt;br /&gt;
    return false -- function failed&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;job&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: &amp;lt;code&amp;gt;lul_device&amp;lt;/code&amp;gt; is a number that is the device ID. &amp;lt;code&amp;gt;lul_settings&amp;lt;/code&amp;gt; is a table with all the arguments to the action. &amp;lt;code&amp;gt;lul_job&amp;lt;/code&amp;gt; is the id number of the job. &lt;br /&gt;
&lt;br /&gt;
return value: return 2 values with the syntax &amp;lt;code&amp;gt;return a,b&amp;lt;/code&amp;gt;. The first is the job status and is a number from 0-5, and the second is the timeout in seconds.&lt;br /&gt;
&lt;br /&gt;
For more detail see:&lt;br /&gt;
*[[Luup_Lua_extensions#Module:_luup.job|Luup Lua extensions: Module luup.job]]&lt;br /&gt;
*[[Luup_Plugins_ByHand#.3Crun.2Fjob.2Fincoming.2Ftimeout.3E|Luup Plugins ByHand: &amp;lt;run/job/incoming/timeout&amp;gt;]]&lt;br /&gt;
*[[UI_Notes#Job_status|UI Notes: Job status]]&lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SendProntoCode_job(lul_device, lul_settings, lul_job)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue) .. ' job ID#: ' .. lul_job)&lt;br /&gt;
    -- 5 = job_WaitingForCallback&lt;br /&gt;
    -- and we'll wait 10 seconds for incoming data&lt;br /&gt;
    return 5, 10&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;incoming&amp;gt; (returned by a job) ==&lt;br /&gt;
&lt;br /&gt;
variables: same as for job above, plus lul_data which is a binary string with the data received &lt;br /&gt;
&lt;br /&gt;
return value: return 3 values with the syntax return a,b,c. The first two are the same as with job, and the 3rd is a true or false indicating if the incoming data was intended for this job. See [[Luup_Plugins_ByHand#&amp;lt;run/job/incoming/timeout&amp;gt;|&amp;lt;run/job/incoming/timeout&amp;gt;]] for details. &lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SendProntoCode_incoming(lul_device, lul_settings, lul_job, lul_data)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue) .. ' job ID#: ' .. lul_job .. &amp;quot; received data: &amp;quot; .. lul_data)&lt;br /&gt;
    -- 4 = jobDone&lt;br /&gt;
    -- nil = n/a on the timeout since the job is done&lt;br /&gt;
    -- true = the incoming data was for us&lt;br /&gt;
    return 4, nil, true&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;timeout&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: same as for job above.&lt;br /&gt;
&lt;br /&gt;
return value: same as for job above&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;incoming&amp;gt; (general, not for a job)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device is a number that is the device id.  lul_data is a binary string with the data received&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;scene&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: none&lt;br /&gt;
&lt;br /&gt;
return values: boolean (true or false)&lt;br /&gt;
&lt;br /&gt;
This is how the Lua code in a scene is called.  The code is ran before the commands in the scene and if the code returns false, the scene is aborted and the command don't run.  If anything else is returned, including true or nothing at all, the scene's commands run as normal.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;event&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_value &lt;br /&gt;
&lt;br /&gt;
return values: boolean (true or false) &lt;br /&gt;
&lt;br /&gt;
This is how the Lua code in an event is called. The code is run before the event is processed and the commands in the scene are executed. If the code returns false, the event is aborted and the command(s) in the scene&amp;amp;nbsp;will not&amp;amp;nbsp;run. If anything else is returned, including true or nothing at all, the scene's commands run as normal. lul_value is the new value that is being assigned to the variable which the event is monitoring.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;request&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_request,lul_parameters,lul_outputformat&lt;br /&gt;
&lt;br /&gt;
return values: lul_data,lul_outputformat&lt;br /&gt;
&lt;br /&gt;
When you call [[Luup_Lua_extensions#function:_register_handler|luup.register_handler]] to handle a request on a URL, you pass in a function name that will handle the request.  This function is called with lul_request as a string containing the request ID, lul_parameters is a table with all the arguments on the URL, and lul_outputformat is the requested format of the data passed on the &amp;amp;output_format= in the URL.&lt;br /&gt;
&lt;br /&gt;
You return lul_data which is a string containing the response which is forwarded to the client, and optionally lul_outputformat, which is the document type put in the HTML response.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;timed&amp;gt; (callback)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_data&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
When you pass a Lua function to be called at a later time with [[Luup_Lua_extensions#function:_call_delay|luup.call_delay]] or [[Luup_Lua_extensions#function:_call_timer|luup.call_timer]], the function is called with the data (a string) you past.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;watch&amp;gt; (callback)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device, lul_service, lul_variable, lul_value_old, lul_value_new&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
When you watch a variable with [[Luup_Lua_extensions#function:_variable_watch|luup.variable_watch]], and the variable changes, your callback is called with the information on the variable that changed.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;startup&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device&lt;br /&gt;
&lt;br /&gt;
return values: return 3 variables with the syntax return a,b,c where the first is true if the startup was successful or false if not, followed by 2 strings for the comments and the name of the module&lt;br /&gt;
&lt;br /&gt;
If this function is called in the startup sequence specified in the 'startup' XML tag, return true if the startup was ok, false if it wasn't, followed by some comments and the name of the module, like this: &amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;return false,'Cannot get state','gc100'&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;return true,'ok','gc100'&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;ir&amp;gt;==&lt;br /&gt;
There are two parts to the equation here:&lt;br /&gt;
# the device holding the IR codes for all the different IR commands to be used&lt;br /&gt;
# a device associated with 1) above that understands the codes and knows how to emit them via a specific piece of hardware&lt;br /&gt;
&lt;br /&gt;
In the user interface for device one above, you can select the hardware device, two above, that will emit the IR codes.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;ir&amp;gt; tag hold an IR code - which can be in any format. In device one, you associate the hardware driver (device two). Device number two must understand the format, as found in the &amp;lt;ir&amp;gt; tag and will automagically receive the IR code via the function SendProntoCode(). The hardware is then manipulated to emit the IR code.&lt;br /&gt;
&lt;br /&gt;
Note that many of the IR devices used by Vera use ProntoCodes, hence the handling function was named SendProntoCode. However this is a misnomer, as the function just receives what is located in the &amp;lt;ir&amp;gt; tag. The hardware driver computer code just needs to emit the IR code it receives, whether that be a prontcode or otherwise.&lt;br /&gt;
&lt;br /&gt;
Refer to [[Luup_IR]] also.&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Declarations</id>
		<title>Luup Declarations</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Declarations"/>
				<updated>2017-06-16T12:55:08Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
When the Luup engine calls your Lua code it will pass your code some variables relevant to whatever the code is supposed to do.  You can see how your code looks with the full function declarations by bringing up this page in a web browser: http://IP_of_Vera:3480/data_request?id=lua&amp;amp;DeviceNum=8&lt;br /&gt;
&lt;br /&gt;
Here is a list of the variables that are passed to your Lua code, and also a list of what return values the Lua code should send back.  The tag names are explained here: [[Luup_Plugins_ByHand#The_Luup_XML_implementation_file|The Luup XML implementation file]].&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;run&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: &amp;lt;code&amp;gt;lul_device&amp;lt;/code&amp;gt; is a number that is the device ID. &amp;lt;code&amp;gt;lul_settings&amp;lt;/code&amp;gt; is a table with all the arguments to the action. &lt;br /&gt;
&lt;br /&gt;
return value: ''true'' or ''false'' where ''true'' means the function ran ok, ''false'' means it failed. &lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SetTarget_run(lul_device, lul_settings)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue))&lt;br /&gt;
    return false -- function failed&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;job&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: &amp;lt;code&amp;gt;lul_device&amp;lt;/code&amp;gt; is a number that is the device ID. &amp;lt;code&amp;gt;lul_settings&amp;lt;/code&amp;gt; is a table with all the arguments to the action. &amp;lt;code&amp;gt;lul_job&amp;lt;/code&amp;gt; is the id number of the job. &lt;br /&gt;
&lt;br /&gt;
return value: return 2 values with the syntax &amp;lt;code&amp;gt;return a,b&amp;lt;/code&amp;gt;. The first is the job status and is a number from 0-5, and the second is the timeout in seconds.&lt;br /&gt;
&lt;br /&gt;
For more detail see:&lt;br /&gt;
*[[Luup_Lua_extensions#Module:_luup.job|Luup Lua extensions: Module luup.job]]&lt;br /&gt;
*[[Luup_Plugins_ByHand#.3Crun.2Fjob.2Fincoming.2Ftimeout.3E|Luup Plugins ByHand: &amp;lt;run/job/incoming/timeout&amp;gt;]]&lt;br /&gt;
*[[UI_Notes#Job_status|UI Notes: Job status]]&lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SendProntoCode_job(lul_device, lul_settings, lul_job)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue) .. ' job ID#: ' .. lul_job)&lt;br /&gt;
    -- 5 = job_WaitingForCallback&lt;br /&gt;
    -- and we'll wait 10 seconds for incoming data&lt;br /&gt;
    return 5, 10&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;incoming&amp;gt; (returned by a job) ==&lt;br /&gt;
&lt;br /&gt;
variables: same as for job above, plus lul_data which is a binary string with the data received &lt;br /&gt;
&lt;br /&gt;
return value: return 3 values with the syntax return a,b,c. The first two are the same as with job, and the 3rd is a true or false indicating if the incoming data was intended for this job. See [[Luup_Plugins_ByHand#&amp;lt;run/job/incoming/timeout&amp;gt;|&amp;lt;run/job/incoming/timeout&amp;gt;]] for details. &lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SendProntoCode_incoming(lul_device, lul_settings, lul_job, lul_data)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue) .. ' job ID#: ' .. lul_job .. &amp;quot; received data: &amp;quot; .. lul_data)&lt;br /&gt;
    -- 4 = jobDone&lt;br /&gt;
    -- nil = n/a on the timeout since the job is done&lt;br /&gt;
    -- true = the incoming data was for us&lt;br /&gt;
    return 4, nil, true&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;timeout&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: same as for job above.&lt;br /&gt;
&lt;br /&gt;
return value: same as for job above&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;incoming&amp;gt; (general, not for a job)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device is a number that is the device id.  lul_data is a binary string with the data received&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;scene&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: none&lt;br /&gt;
&lt;br /&gt;
return values: boolean (true or false)&lt;br /&gt;
&lt;br /&gt;
This is how the Lua code in a scene is called.  The code is ran before the commands in the scene and if the code returns false, the scene is aborted and the command don't run.  If anything else is returned, including true or nothing at all, the scene's commands run as normal.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;event&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_value &lt;br /&gt;
&lt;br /&gt;
return values: boolean (true or false) &lt;br /&gt;
&lt;br /&gt;
This is how the Lua code in an event is called. The code is run before the event is processed and the commands in the scene are executed. If the code returns false, the event is aborted and the command(s) in the scene&amp;amp;nbsp;will not&amp;amp;nbsp;run. If anything else is returned, including true or nothing at all, the scene's commands run as normal. lul_value is the new value that is being assigned to the variable which the event is monitoring.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;request&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_request,lul_parameters,lul_outputformat&lt;br /&gt;
&lt;br /&gt;
return values: lul_data,lul_outputformat&lt;br /&gt;
&lt;br /&gt;
When you call [[Luup_Lua_extensions#function:_register_handler|luup.register_handler]] to handle a request on a URL, you pass in a function name that will handle the request.  This function is called with lul_request as a string containing the request ID, lul_parameters is a table with all the arguments on the URL, and lul_outputformat is the requested format of the data passed on the &amp;amp;output_format= in the URL.&lt;br /&gt;
&lt;br /&gt;
You return lul_data which is a string containing the response which is forwarded to the client, and optionally lul_outputformat, which is the document type put in the HTML response.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;timed&amp;gt; (callback)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_data&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
When you pass a Lua function to be called at a later time with [[Luup_Lua_extensions#function:_call_delay|luup.call_delay]] or [[Luup_Lua_extensions#function:_call_timer|luup.call_timer]], the function is called with the data (a string) you past.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;watch&amp;gt; (callback)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device, lul_service, lul_variable, lul_value_old, lul_value_new&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
When you watch a variable with [[Luup_Lua_extensions#function:_variable_watch|luup.variable_watch]], and the variable changes, your callback is called with the information on the variable that changed.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;startup&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device&lt;br /&gt;
&lt;br /&gt;
return values: return 3 variables with the syntax return a,b,c where the first is true if the startup was successful or false if not, followed by 2 strings for the comments and the name of the module&lt;br /&gt;
&lt;br /&gt;
If this function is called in the startup sequence specified in the 'startup' XML tag, return true if the startup was ok, false if it wasn't, followed by some comments and the name of the module, like this: &amp;lt;source lang=&amp;quot;lua&amp;gt;return false,'Cannot get state','gc100'&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;lua&amp;gt;return true,'ok','gc100'&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;ir&amp;gt;==&lt;br /&gt;
There are two parts to the equation here:&lt;br /&gt;
# the device holding the IR codes for all the different IR commands to be used&lt;br /&gt;
# a device associated with 1) above that understands the codes and knows how to emit them via a specific piece of hardware&lt;br /&gt;
&lt;br /&gt;
In the user interface for device one above, you can select the hardware device, two above, that will emit the IR codes.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;ir&amp;gt; tag hold an IR code - which can be in any format. In device one, you associate the hardware driver (device two). Device number two must understand the format, as found in the &amp;lt;ir&amp;gt; tag and will automagically receive the IR code via the function SendProntoCode(). The hardware is then manipulated to emit the IR code.&lt;br /&gt;
&lt;br /&gt;
Note that many of the IR devices used by Vera use ProntoCodes, hence the handling function was named SendProntoCode. However this is a misnomer, as the function just receives what is located in the &amp;lt;ir&amp;gt; tag. The hardware driver computer code just needs to emit the IR code it receives, whether that be a prontcode or otherwise.&lt;br /&gt;
&lt;br /&gt;
Refer to [[Luup_IR]] also.&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Declarations</id>
		<title>Luup Declarations</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Declarations"/>
				<updated>2017-06-16T12:40:51Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /*  (callback) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
When the Luup engine calls your Lua code it will pass your code some variables relevant to whatever the code is supposed to do.  You can see how your code looks with the full function declarations by bringing up this page in a web browser: http://ip_of_vera:49451/data_request?id=lu_lua&amp;amp;DeviceNum=8&lt;br /&gt;
&lt;br /&gt;
Here is a list of the variables that are passed to your Lua code, and also a list of what return values the Lua code should send back.  The tag names are explained here: [[Luup_Plugins_ByHand#The_Luup_XML_implementation_file|The Luup XML implementation file]].&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;run&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: &amp;lt;code&amp;gt;lul_device&amp;lt;/code&amp;gt; is a number that is the device ID. &amp;lt;code&amp;gt;lul_settings&amp;lt;/code&amp;gt; is a table with all the arguments to the action. &lt;br /&gt;
&lt;br /&gt;
return value: ''true'' or ''false'' where ''true'' means the function ran ok, ''false'' means it failed. &lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SetTarget_run(lul_device, lul_settings)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue))&lt;br /&gt;
    return false -- function failed&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;job&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: &amp;lt;code&amp;gt;lul_device&amp;lt;/code&amp;gt; is a number that is the device ID. &amp;lt;code&amp;gt;lul_settings&amp;lt;/code&amp;gt; is a table with all the arguments to the action. &amp;lt;code&amp;gt;lul_job&amp;lt;/code&amp;gt; is the id number of the job. &lt;br /&gt;
&lt;br /&gt;
return value: return 2 values with the syntax &amp;lt;code&amp;gt;return a,b&amp;lt;/code&amp;gt;. The first is the job status and is a number from 0-5, and the second is the timeout in seconds.&lt;br /&gt;
&lt;br /&gt;
For more detail see:&lt;br /&gt;
*[[Luup_Lua_extensions#Module:_luup.job|Luup Lua extensions: Module luup.job]]&lt;br /&gt;
*[[Luup_Plugins_ByHand#.3Crun.2Fjob.2Fincoming.2Ftimeout.3E|Luup Plugins ByHand: &amp;lt;run/job/incoming/timeout&amp;gt;]]&lt;br /&gt;
*[[UI_Notes#Job_status|UI Notes: Job status]]&lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SendProntoCode_job(lul_device, lul_settings, lul_job)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue) .. ' job ID#: ' .. lul_job)&lt;br /&gt;
    -- 5 = job_WaitingForCallback&lt;br /&gt;
    -- and we'll wait 10 seconds for incoming data&lt;br /&gt;
    return 5, 10&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;incoming&amp;gt; (returned by a job) ==&lt;br /&gt;
&lt;br /&gt;
variables: same as for job above, plus lul_data which is a binary string with the data received &lt;br /&gt;
&lt;br /&gt;
return value: return 3 values with the syntax return a,b,c. The first two are the same as with job, and the 3rd is a true or false indicating if the incoming data was intended for this job. See [[Luup_Plugins_ByHand#&amp;lt;run/job/incoming/timeout&amp;gt;|&amp;lt;run/job/incoming/timeout&amp;gt;]] for details. &lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SendProntoCode_incoming(lul_device, lul_settings, lul_job, lul_data)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue) .. ' job ID#: ' .. lul_job .. &amp;quot; received data: &amp;quot; .. lul_data)&lt;br /&gt;
    -- 4 = jobDone&lt;br /&gt;
    -- nil = n/a on the timeout since the job is done&lt;br /&gt;
    -- true = the incoming data was for us&lt;br /&gt;
    return 4, nil, true&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;timeout&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: same as for job above.&lt;br /&gt;
&lt;br /&gt;
return value: same as for job above&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;incoming&amp;gt; (general, not for a job)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device is a number that is the device id.  lul_data is a binary string with the data received&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;scene&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: none&lt;br /&gt;
&lt;br /&gt;
return values: boolean (true or false)&lt;br /&gt;
&lt;br /&gt;
This is how the Lua code in a scene is called.  The code is ran before the commands in the scene and if the code returns false, the scene is aborted and the command don't run.  If anything else is returned, including true or nothing at all, the scene's commands run as normal.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;event&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_value &lt;br /&gt;
&lt;br /&gt;
return values: boolean (true or false) &lt;br /&gt;
&lt;br /&gt;
This is how the Lua code in an event is called. The code is run before the event is processed and the commands in the scene are executed. If the code returns false, the event is aborted and the command(s) in the scene&amp;amp;nbsp;will not&amp;amp;nbsp;run. If anything else is returned, including true or nothing at all, the scene's commands run as normal. lul_value is the new value that is being assigned to the variable which the event is monitoring.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;request&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_request,lul_parameters,lul_outputformat&lt;br /&gt;
&lt;br /&gt;
return values: lul_data,lul_outputformat&lt;br /&gt;
&lt;br /&gt;
When you call lu_RegisterHandler (see [[Luup_Lua_extensions]]) to handle a request on a URL, you pass in a function name that will handle the request.  This function is called with lul_request as a string containing the request ID, lul_parameters is a table with all the arguments on the URL, and lul_outputformat is the requested format of the data passed on the &amp;amp;output_format= in the URL.&lt;br /&gt;
&lt;br /&gt;
You return lul_data which is a string containing the response which is forwarded to the client, and optionally lul_outputformat, which is the document type put in the HTML response.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;timed&amp;gt; (callback)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_data&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
When you pass a Lua function to be called at a later time with [[Luup_Lua_extensions#function:_call_delay|luup.call_delay]] or [[Luup_Lua_extensions#function:_call_timer|luup.call_timer]], the function is called with the data (a string) you past.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;watch&amp;gt; (callback)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device, lul_service, lul_variable, lul_value_old, lul_value_new&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
When you watch a variable with [[Luup_Lua_extensions#function:_variable_watch|luup.variable_watch]], and the variable changes, your callback is called with the information on the variable that changed.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;startup&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device&lt;br /&gt;
&lt;br /&gt;
return values: return 3 variables with the syntax return a,b,c where the first is true if the startup was successful or false if not, followed by 2 strings for the comments and the name of the module&lt;br /&gt;
&lt;br /&gt;
If this function is called in the startup sequence specified in the 'startup' XML tag, return true if the startup was ok, false if it wasn't, followed by some comments and the name of the module, like this: return false,'Cannot get state','gc100' or return true,'ok','gc100'&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;ir&amp;gt;==&lt;br /&gt;
There are two parts to the equation here:&lt;br /&gt;
# the device holding the IR codes for all the different IR commands to be used&lt;br /&gt;
# a device associated with 1) above that understands the codes and knows how to emit them via a specific piece of hardware&lt;br /&gt;
&lt;br /&gt;
In the user interface for device one above, you can select the hardware device, two above, that will emit the IR codes.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;ir&amp;gt; tag hold an IR code - which can be in any format. In device one, you associate the hardware driver (device two). Device number two must understand the format, as found in the &amp;lt;ir&amp;gt; tag and will automagically receive the IR code via the function SendProntoCode(). The hardware is then manipulated to emit the IR code.&lt;br /&gt;
&lt;br /&gt;
Note that many of the IR devices used by Vera use ProntoCodes, hence the handling function was named SendProntoCode. However this is a misnomer, as the function just receives what is located in the &amp;lt;ir&amp;gt; tag. The hardware driver computer code just needs to emit the IR code it receives, whether that be a prontcode or otherwise.&lt;br /&gt;
&lt;br /&gt;
Refer to [[Luup_IR]] also.&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Declarations</id>
		<title>Luup Declarations</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Declarations"/>
				<updated>2017-06-16T12:39:16Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /*  (callback) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
When the Luup engine calls your Lua code it will pass your code some variables relevant to whatever the code is supposed to do.  You can see how your code looks with the full function declarations by bringing up this page in a web browser: http://ip_of_vera:49451/data_request?id=lu_lua&amp;amp;DeviceNum=8&lt;br /&gt;
&lt;br /&gt;
Here is a list of the variables that are passed to your Lua code, and also a list of what return values the Lua code should send back.  The tag names are explained here: [[Luup_Plugins_ByHand#The_Luup_XML_implementation_file|The Luup XML implementation file]].&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;run&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: &amp;lt;code&amp;gt;lul_device&amp;lt;/code&amp;gt; is a number that is the device ID. &amp;lt;code&amp;gt;lul_settings&amp;lt;/code&amp;gt; is a table with all the arguments to the action. &lt;br /&gt;
&lt;br /&gt;
return value: ''true'' or ''false'' where ''true'' means the function ran ok, ''false'' means it failed. &lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SetTarget_run(lul_device, lul_settings)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue))&lt;br /&gt;
    return false -- function failed&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;job&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: &amp;lt;code&amp;gt;lul_device&amp;lt;/code&amp;gt; is a number that is the device ID. &amp;lt;code&amp;gt;lul_settings&amp;lt;/code&amp;gt; is a table with all the arguments to the action. &amp;lt;code&amp;gt;lul_job&amp;lt;/code&amp;gt; is the id number of the job. &lt;br /&gt;
&lt;br /&gt;
return value: return 2 values with the syntax &amp;lt;code&amp;gt;return a,b&amp;lt;/code&amp;gt;. The first is the job status and is a number from 0-5, and the second is the timeout in seconds.&lt;br /&gt;
&lt;br /&gt;
For more detail see:&lt;br /&gt;
*[[Luup_Lua_extensions#Module:_luup.job|Luup Lua extensions: Module luup.job]]&lt;br /&gt;
*[[Luup_Plugins_ByHand#.3Crun.2Fjob.2Fincoming.2Ftimeout.3E|Luup Plugins ByHand: &amp;lt;run/job/incoming/timeout&amp;gt;]]&lt;br /&gt;
*[[UI_Notes#Job_status|UI Notes: Job status]]&lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SendProntoCode_job(lul_device, lul_settings, lul_job)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue) .. ' job ID#: ' .. lul_job)&lt;br /&gt;
    -- 5 = job_WaitingForCallback&lt;br /&gt;
    -- and we'll wait 10 seconds for incoming data&lt;br /&gt;
    return 5, 10&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;incoming&amp;gt; (returned by a job) ==&lt;br /&gt;
&lt;br /&gt;
variables: same as for job above, plus lul_data which is a binary string with the data received &lt;br /&gt;
&lt;br /&gt;
return value: return 3 values with the syntax return a,b,c. The first two are the same as with job, and the 3rd is a true or false indicating if the incoming data was intended for this job. See [[Luup_Plugins_ByHand#&amp;lt;run/job/incoming/timeout&amp;gt;|&amp;lt;run/job/incoming/timeout&amp;gt;]] for details. &lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SendProntoCode_incoming(lul_device, lul_settings, lul_job, lul_data)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue) .. ' job ID#: ' .. lul_job .. &amp;quot; received data: &amp;quot; .. lul_data)&lt;br /&gt;
    -- 4 = jobDone&lt;br /&gt;
    -- nil = n/a on the timeout since the job is done&lt;br /&gt;
    -- true = the incoming data was for us&lt;br /&gt;
    return 4, nil, true&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;timeout&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: same as for job above.&lt;br /&gt;
&lt;br /&gt;
return value: same as for job above&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;incoming&amp;gt; (general, not for a job)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device is a number that is the device id.  lul_data is a binary string with the data received&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;scene&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: none&lt;br /&gt;
&lt;br /&gt;
return values: boolean (true or false)&lt;br /&gt;
&lt;br /&gt;
This is how the Lua code in a scene is called.  The code is ran before the commands in the scene and if the code returns false, the scene is aborted and the command don't run.  If anything else is returned, including true or nothing at all, the scene's commands run as normal.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;event&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_value &lt;br /&gt;
&lt;br /&gt;
return values: boolean (true or false) &lt;br /&gt;
&lt;br /&gt;
This is how the Lua code in an event is called. The code is run before the event is processed and the commands in the scene are executed. If the code returns false, the event is aborted and the command(s) in the scene&amp;amp;nbsp;will not&amp;amp;nbsp;run. If anything else is returned, including true or nothing at all, the scene's commands run as normal. lul_value is the new value that is being assigned to the variable which the event is monitoring.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;request&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_request,lul_parameters,lul_outputformat&lt;br /&gt;
&lt;br /&gt;
return values: lul_data,lul_outputformat&lt;br /&gt;
&lt;br /&gt;
When you call lu_RegisterHandler (see [[Luup_Lua_extensions]]) to handle a request on a URL, you pass in a function name that will handle the request.  This function is called with lul_request as a string containing the request ID, lul_parameters is a table with all the arguments on the URL, and lul_outputformat is the requested format of the data passed on the &amp;amp;output_format= in the URL.&lt;br /&gt;
&lt;br /&gt;
You return lul_data which is a string containing the response which is forwarded to the client, and optionally lul_outputformat, which is the document type put in the HTML response.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;timed&amp;gt; (callback)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_data&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
When you pass a Lua function to be called at a later time with [[Luup_Lua_extensions#function:_call_delay|luup.call_delay]] or [[Luup_Lua_extensions#function:_call_timer|luup.call_timer]] (see [[Luup_Lua_extensions]]), the function is called with the data (a string) you past.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;watch&amp;gt; (callback)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device, lul_service, lul_variable, lul_value_old, lul_value_new&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
When you watch a variable with [[Luup_Lua_extensions#function:_variable_watch|luup.variable_watch]], and the variable changes, your callback is called with the information on the variable that changed.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;startup&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device&lt;br /&gt;
&lt;br /&gt;
return values: return 3 variables with the syntax return a,b,c where the first is true if the startup was successful or false if not, followed by 2 strings for the comments and the name of the module&lt;br /&gt;
&lt;br /&gt;
If this function is called in the startup sequence specified in the 'startup' XML tag, return true if the startup was ok, false if it wasn't, followed by some comments and the name of the module, like this: return false,'Cannot get state','gc100' or return true,'ok','gc100'&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;ir&amp;gt;==&lt;br /&gt;
There are two parts to the equation here:&lt;br /&gt;
# the device holding the IR codes for all the different IR commands to be used&lt;br /&gt;
# a device associated with 1) above that understands the codes and knows how to emit them via a specific piece of hardware&lt;br /&gt;
&lt;br /&gt;
In the user interface for device one above, you can select the hardware device, two above, that will emit the IR codes.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;ir&amp;gt; tag hold an IR code - which can be in any format. In device one, you associate the hardware driver (device two). Device number two must understand the format, as found in the &amp;lt;ir&amp;gt; tag and will automagically receive the IR code via the function SendProntoCode(). The hardware is then manipulated to emit the IR code.&lt;br /&gt;
&lt;br /&gt;
Note that many of the IR devices used by Vera use ProntoCodes, hence the handling function was named SendProntoCode. However this is a misnomer, as the function just receives what is located in the &amp;lt;ir&amp;gt; tag. The hardware driver computer code just needs to emit the IR code it receives, whether that be a prontcode or otherwise.&lt;br /&gt;
&lt;br /&gt;
Refer to [[Luup_IR]] also.&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	<entry>
		<id>http://wiki.mios.com/index.php/Luup_Declarations</id>
		<title>Luup Declarations</title>
		<link rel="alternate" type="text/html" href="http://wiki.mios.com/index.php/Luup_Declarations"/>
				<updated>2017-06-16T12:37:20Z</updated>
		
		<summary type="html">&lt;p&gt;Mcvflorin: /*  (callback) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
When the Luup engine calls your Lua code it will pass your code some variables relevant to whatever the code is supposed to do.  You can see how your code looks with the full function declarations by bringing up this page in a web browser: http://ip_of_vera:49451/data_request?id=lu_lua&amp;amp;DeviceNum=8&lt;br /&gt;
&lt;br /&gt;
Here is a list of the variables that are passed to your Lua code, and also a list of what return values the Lua code should send back.  The tag names are explained here: [[Luup_Plugins_ByHand#The_Luup_XML_implementation_file|The Luup XML implementation file]].&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;run&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: &amp;lt;code&amp;gt;lul_device&amp;lt;/code&amp;gt; is a number that is the device ID. &amp;lt;code&amp;gt;lul_settings&amp;lt;/code&amp;gt; is a table with all the arguments to the action. &lt;br /&gt;
&lt;br /&gt;
return value: ''true'' or ''false'' where ''true'' means the function ran ok, ''false'' means it failed. &lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SetTarget_run(lul_device, lul_settings)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue))&lt;br /&gt;
    return false -- function failed&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;job&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: &amp;lt;code&amp;gt;lul_device&amp;lt;/code&amp;gt; is a number that is the device ID. &amp;lt;code&amp;gt;lul_settings&amp;lt;/code&amp;gt; is a table with all the arguments to the action. &amp;lt;code&amp;gt;lul_job&amp;lt;/code&amp;gt; is the id number of the job. &lt;br /&gt;
&lt;br /&gt;
return value: return 2 values with the syntax &amp;lt;code&amp;gt;return a,b&amp;lt;/code&amp;gt;. The first is the job status and is a number from 0-5, and the second is the timeout in seconds.&lt;br /&gt;
&lt;br /&gt;
For more detail see:&lt;br /&gt;
*[[Luup_Lua_extensions#Module:_luup.job|Luup Lua extensions: Module luup.job]]&lt;br /&gt;
*[[Luup_Plugins_ByHand#.3Crun.2Fjob.2Fincoming.2Ftimeout.3E|Luup Plugins ByHand: &amp;lt;run/job/incoming/timeout&amp;gt;]]&lt;br /&gt;
*[[UI_Notes#Job_status|UI Notes: Job status]]&lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SendProntoCode_job(lul_device, lul_settings, lul_job)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue) .. ' job ID#: ' .. lul_job)&lt;br /&gt;
    -- 5 = job_WaitingForCallback&lt;br /&gt;
    -- and we'll wait 10 seconds for incoming data&lt;br /&gt;
    return 5, 10&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;incoming&amp;gt; (returned by a job) ==&lt;br /&gt;
&lt;br /&gt;
variables: same as for job above, plus lul_data which is a binary string with the data received &lt;br /&gt;
&lt;br /&gt;
return value: return 3 values with the syntax return a,b,c. The first two are the same as with job, and the 3rd is a true or false indicating if the incoming data was intended for this job. See [[Luup_Plugins_ByHand#&amp;lt;run/job/incoming/timeout&amp;gt;|&amp;lt;run/job/incoming/timeout&amp;gt;]] for details. &lt;br /&gt;
&lt;br /&gt;
Sample; including the function/end lines, which the Luup engine '''adds automatically''':&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;function SendProntoCode_incoming(lul_device, lul_settings, lul_job, lul_data)&lt;br /&gt;
&lt;br /&gt;
    luup.log('device: ' .. tostring(lul_device) .. ' value: ' .. tostring(lul_settings.newTargetValue) .. ' job ID#: ' .. lul_job .. &amp;quot; received data: &amp;quot; .. lul_data)&lt;br /&gt;
    -- 4 = jobDone&lt;br /&gt;
    -- nil = n/a on the timeout since the job is done&lt;br /&gt;
    -- true = the incoming data was for us&lt;br /&gt;
    return 4, nil, true&lt;br /&gt;
&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;timeout&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: same as for job above.&lt;br /&gt;
&lt;br /&gt;
return value: same as for job above&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;incoming&amp;gt; (general, not for a job)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device is a number that is the device id.  lul_data is a binary string with the data received&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;scene&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: none&lt;br /&gt;
&lt;br /&gt;
return values: boolean (true or false)&lt;br /&gt;
&lt;br /&gt;
This is how the Lua code in a scene is called.  The code is ran before the commands in the scene and if the code returns false, the scene is aborted and the command don't run.  If anything else is returned, including true or nothing at all, the scene's commands run as normal.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;event&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_value &lt;br /&gt;
&lt;br /&gt;
return values: boolean (true or false) &lt;br /&gt;
&lt;br /&gt;
This is how the Lua code in an event is called. The code is run before the event is processed and the commands in the scene are executed. If the code returns false, the event is aborted and the command(s) in the scene&amp;amp;nbsp;will not&amp;amp;nbsp;run. If anything else is returned, including true or nothing at all, the scene's commands run as normal. lul_value is the new value that is being assigned to the variable which the event is monitoring.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;request&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_request,lul_parameters,lul_outputformat&lt;br /&gt;
&lt;br /&gt;
return values: lul_data,lul_outputformat&lt;br /&gt;
&lt;br /&gt;
When you call lu_RegisterHandler (see [[Luup_Lua_extensions]]) to handle a request on a URL, you pass in a function name that will handle the request.  This function is called with lul_request as a string containing the request ID, lul_parameters is a table with all the arguments on the URL, and lul_outputformat is the requested format of the data passed on the &amp;amp;output_format= in the URL.&lt;br /&gt;
&lt;br /&gt;
You return lul_data which is a string containing the response which is forwarded to the client, and optionally lul_outputformat, which is the document type put in the HTML response.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;timed&amp;gt; (callback)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_data&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
When you pass a Lua function to be called at a later time with lu_CallFunctionDelay or lu_CallFunctionTimer (see [[Luup_Lua_extensions]]), the function is called with the data (a string) you past.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;watch&amp;gt; (callback)==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device, lul_service, lul_variable, lul_value_old, lul_value_new&lt;br /&gt;
&lt;br /&gt;
return values: none&lt;br /&gt;
&lt;br /&gt;
When you watch a variable with [[Luup_Lua_extensions#function:_variable_watch|luup.variable_watch]], and the variable changes, your callback is called with the information on the variable that changed.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;startup&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
variables: lul_device&lt;br /&gt;
&lt;br /&gt;
return values: return 3 variables with the syntax return a,b,c where the first is true if the startup was successful or false if not, followed by 2 strings for the comments and the name of the module&lt;br /&gt;
&lt;br /&gt;
If this function is called in the startup sequence specified in the 'startup' XML tag, return true if the startup was ok, false if it wasn't, followed by some comments and the name of the module, like this: return false,'Cannot get state','gc100' or return true,'ok','gc100'&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;ir&amp;gt;==&lt;br /&gt;
There are two parts to the equation here:&lt;br /&gt;
# the device holding the IR codes for all the different IR commands to be used&lt;br /&gt;
# a device associated with 1) above that understands the codes and knows how to emit them via a specific piece of hardware&lt;br /&gt;
&lt;br /&gt;
In the user interface for device one above, you can select the hardware device, two above, that will emit the IR codes.&lt;br /&gt;
&lt;br /&gt;
Each &amp;lt;ir&amp;gt; tag hold an IR code - which can be in any format. In device one, you associate the hardware driver (device two). Device number two must understand the format, as found in the &amp;lt;ir&amp;gt; tag and will automagically receive the IR code via the function SendProntoCode(). The hardware is then manipulated to emit the IR code.&lt;br /&gt;
&lt;br /&gt;
Note that many of the IR devices used by Vera use ProntoCodes, hence the handling function was named SendProntoCode. However this is a misnomer, as the function just receives what is located in the &amp;lt;ir&amp;gt; tag. The hardware driver computer code just needs to emit the IR code it receives, whether that be a prontcode or otherwise.&lt;br /&gt;
&lt;br /&gt;
Refer to [[Luup_IR]] also.&lt;/div&gt;</summary>
		<author><name>Mcvflorin</name></author>	</entry>

	</feed>