Luup UPnP Variables and Actions

From MiOS
Jump to: navigation, search

This is a list of all the UPnP actions and variables used by MiOS.

Some actions and variables have self-explanatory names, so there's a dash ('-') instead of the description.

Contents

HomeAutomationGateway1

  • Service ID: urn:micasaverde-com:serviceId:HomeAutomationGateway1
  • File: S_HomeAutomationGateway1.xml


Variable Type Description
DataVersion ui4 A number that increases each time the data changes.
UDN string The Unique Device Name of the UPnP device.


Action Arguments Description
Name Type or Related Variable
Reload none Reload the LuaUPnP engine.
ModifyUserData inUserData UserData Make changes to the UserData.
  • inUserData is the new UserData object which will be added to the UserData or will replace an existent UserData object.
  • DataFormat must be json.
  • If Reload is 1 the LuaUPnP engine will reload after the UserData is modified.

For more information read the ModifyUserData page.

DataFormat string
Reload boolean
SetVariable DeviceNum int or string Create or change the value of a variable.
  • DeviceNum can be an UDN or a number.
  • Service is the service ID of the variable.
  • Variable is the variable name.
  • Value is the new variable value.
Service string
Variable string
Value string
RunScene SceneNum int Run the given scene.
SceneOff SceneNum int Turn off all the devices from DEVICE_CATEGORY_DIMMABLE_LIGHT and DEVICE_CATEGORY_SWITCH from the given scene.
RunLua DeviceNum int or string Run the given Lua code. If DeviceNum is specified, the code is run using that device's interface.
Code string
CreateDevice deviceType string Create a device using the given parameters.
  • deviceType is the UPnP device type.
  • internalID 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.
  • Description is the device name, which is shown to the user on the dashboard.
  • UpnpDevFilename is the UPnP device description file name.
  • UpnpImplFilename is the implementation file to use.
  • If the device is IP based, IpAddress is the IP address and port of the device.
  • If this should be the child of another device, DeviceNumParent is the device number of the parent device.
  • RoomNum is the number of the room the device will be in.
  • PluginNum tells the device which plugin to use. The plugin will be installed automatically if it's not already installed.
  • StateVariables 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: service,variable=value\nservice,variable=value\n...
  • If Reload is 1, the Luup engine will be restarted after the device is created.
internalID string
Description string
UpnpDevFilename string
UpnpImplFilename string
IpAddress string
MacAddress string
Username string
Password string
DeviceNumParent int
RoomNum int
PluginNum int
StateVariables string
Reload boolean
DeleteDevice DeviceNum int Delete the device given either through its number, or through its UDN.
UDN string
CreatePlugin PluginNum int Create a plugin with the PluginNum number and Version version. StateVariables are the variables that will be set when the device is created. For more information look at the description of the CreateDevice action above.
Version int
StateVariables string
DeletePlugin PluginNum int Uninstall the given plugin.
CreatePluginDevice PluginNum int Creates a device for plugin #PluginNum.
StateVariables string
ImportUpnpDevice UDN UDN
RoomNum DeviceNum
LogIpRequest IpAddress UDN
MacAddress UDN
SetHouseMode Mode int Changes the house mode.

Mode can be:

  • 1 = Home
  • 2 = Away
  • 3 = Night
  • 4 = Vacation


HaDevice1

  • Service ID: urn:micasaverde-com:serviceId:HaDevice1
  • File: S_HaDevice1.xml


Variable Type Description
CommFailure i1 Contains the communication status with the device:
  • 0 : The communication with the device is OK.
  • 1 : The communication with the device is not OK (e.g. lost connection).
  • 2 : The device is reachable, but there's an authentication error (e.g. invalid credentials).
Configured i1 The configuration state of the device:
  • -3 = Configuration failed
  • -2 = Configuration in progress
  • -1 = Device waiting to be configured
  • 0 = Device not configured
  • 1 = Device successfully configured
  • 2 = Device partially configured
AutoConfigure boolean If this is "1", MiOS will automatically check the routing info for this every 12 hours.
BatteryLevel i1 The battery level reported by the device.
BatteryDate boolean The UNIX time when the BatteryLevel was reported.
LastTimeCheck ui4 Only for devices that are capable of implementing time, this is when the time was last checked.
LastTimeOffset ui1 For LastTimeCheck, this is the timezone offset from UTC when the time was last checked.
LastUpdate ui4 This is when the device information was last updated. (Mostly used for Z-Wave devices)
FirstConfigured ui4 This is when the device was first configured. (Mostly used for Z-Wave devices)
IgnoreRoom boolean Used only by the MiOS scene controller. Internal stuff.
Commands string This is a comma separated list of ControlCodes for the enabled UI controls. If the ControlCode 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.
IODevice ui2 The device number to connect to for IO. (this is on the master device)
IOPort ui2 The port to receive connections on from IODevice. (this is on the serial port)
ReverseOnOff boolean If this is "1", 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.
sl_Alarm string Currently used only by the water leak sensor, contains the alarm code.
ModeSetting string Contains the state of the device for each house mode.

The format is:

<house mode>:<state>;<house mode>:<state>;...
  • If state is empty, the sensor is disarmed/bypassed.
  • If state is "A", the sensor is armed.

Example:

1:;2:A;3:A;4:A
  • In Home(1) mode the sensor is disarmed;
  • in Away(2), Night(3) and Vacation(4) modes the sensor is armed.
Children string This is a comma separated list of KitDevice numbers.

LuaUPnP will create a child device for every item in the list, with the specified KitDevice properties.

Can be used to add children to devices which don't have MultiChannel support.

PollRatings double 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.
WakeupRatings double 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
AlarmTypes string 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.
CustomModeConfiguration string Implementation of custom preset modes for any device.

Format:

<mode code>;<mode name>;<upnp_action>[|<mode code>;<mode name>;<upnp_action>]

where:

  • <upnp_action> = <service>/<action>/<parameters>
  • <parameters> = <paramName>=<value>[&<paramName>=<value>]

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.

Example:

h;h code;urn:upnp-org:serviceId:SwitchPower1/SetTarget/newTargetValue=?&otherParameter=45&another=?|s;s code;urn:upnp-org:serviceId:Dimming1/SetTargetLevel/newLevel=34&other=?&another=4
CustomModeControls string Used to tell the UI what controls to show in the House modes configuration page for the actions in the CustomModeConfiguration variable.

Format:

<mode>:<control info for arg #1>;<control info for arg #2>;..;<control info for arg #N>[|<mode>:<control info for arg #1>]


Action Arguments Description
Name Type or Related Variable
Reconfigure none Reconfigure the device.
StressTest none Stress test the Z-Wave device.
Remove none Remove the device from the Z-Wave network.
Poll none Poll the device.
ToggleState none 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.).

ZWaveDevice1

  • Service ID: urn:micasaverde-com:serviceId:ZWaveDevice1
  • File: S_ZWaveDevice1.xml (nonexistent)


Variable Type Description
PollSettings ui4 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 ZWaveNetwork1's PollFrequency variable will be used. If it's 0, polling will be disabled for this node.
PollCommands string A comma-separated list of command classes/commands to poll. 'X' means the device won't respond to any poll.
MultiChEndpoint string Internal stuff.
MultiChCapabilities string Internal stuff.
Neighbors string This is a comma-separated list of the neighbor devices' node IDs. '1' is the Vera's node ID.
NeighborsInverse string This is a comma-separated list of the neighbors that see us.
Capabilities string The first 6 numbers in Capabilities are what is reported by the ZW_GetNodeProtocolInfo function: Capability, Security, Reserved, Basic Device Class [, Generic Device Class, Specific Device Class]. If the Capability is >= 128, then the device listens for commands, otherwise it's a battery operated device that only wakes up occasionally. After the '|' in Capabilities are the command classes supported. More information here: ZWave Command Classes
SecurityFailed boolean If this is "1", MiOS won't talk to this node with security even if the node reports it can.
LastReset ui4 When we last reset the node association. (UNIX time)
WakeupInterval ui4 How often this battery operated device should wake up to report its status. The default value is 1800 seconds.
ConfiguredWakeupInterval ui4 The wakeup interval already configured on the device.
LastWakeup ui4 When this device last woke up and reported its status. (UNIX time)
LastRouteUpdate ui4 When this device's routing information was last checked/updated. (UNIX time)
Health ui1 A rating from 0-5. A large number means that MiOS can communicate with it easily.
HealthDate ui4 The date the rating was assigned. (UNIX time)
VariablesGet string This is a comma-separated list of the configuration settings read from the device.

The format is:

variable1_number,variable1_value,variable2_number,variable2_value,...
VariablesSet string This is a comma-separated list of the configuration settings set by the user.

The format is:

variable1_number-variable1_description,variable1_data_type,variable1_value,variable2_number-variable2_description,variable2_data_type,variable2_value,...
AssociationGet string This are the association settings read from the device.
AssociationSet string Z-Wave associations for a device are stored in this variable.

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.

For multi-channel there is a '.' following the node ID with the endpoint ID.

Example:

1,3.4,7;2,5.1,8

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.

AssociationNum ui1 The number of association groups supported by the device.
NonceACK boolean Internal stuff.
ManufacturerInfo string Device information. Format:
ManufacturerID,ProductType,ProductID
VersionInfo string 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 Application Version is specific to the device and not defined by Z-Wave.
SetPointInfo string A comma-separated list of the supported setpoint types:
  • H1 = Heating
  • C1 = Cooling
  • F1 = Furnace
  • D1 = Dry Air
  • MA = Moist Air
  • AC = Auto changeover
  • H2 = Energy Save Heating
  • C2 = Energy Save Cooling
  • AH = Away Heating
NodeInfo string The list of the command classes supported by this device. (hexadecimal numbers)
InitialName string The name that was initially set when the node was first added.
ConfiguredName string The user-specified name when we configured the node.
ConfiguredVariable string The user-specified VariablesSet when we configured the node.
ConfiguredAssoc string The user-specified AssociationSet when we configured the node.
Documentation string URL of the documentation used on the Device Options page.
MeterType ui1 The meter type:
  • 1 = electric
  • 2 = gas
  • 3 = water
MeterScale ui4 A bit map of the supported meter scales.
AlarmType string List of the supported alarm types.
PollOk, PollTxFail, PollNoReply ui4 These variables are incremented each time the last poll job has the status they describe. They are reset after each network heal.
ManualRoute string A route specified by the end-user. This is a dot-separated list of nodes.
AllRoutesFailed boolean This is "1" when all the manual routes have failed.
AutoRoute string This contains a list of various routes chosen by profilings.

Format:

route1_node1.route1_node2...-route1_score[x],route2_node1.route2_node2...-route2_score[x],...

The score is a measure of latency and accuracy, the lower the number, the better. 'x' means that the last attempt to use this route failed, so it won't be used anymore.

IgnoreDirectScene boolean Internal stuff.
SwitchMlSettings string Internal stuff.
BasicSetCapabilities string Allows defining actions for BASIC_SET messages.

Format:

<Value>=<Action><Endpoint>

where:

  • Value  : the BASIC_SET Value; if Value is "XX", it means any value
  • Action  : the Action to perform; the supported values are: T=Trip, U=Untrip, O=On, F=Off, D=Dim
  • Endpoint  : the Endpoint device ID (altid); if Endpoint=0, it means the parent node, or the current node if the device has no children

Examples:

00=Ue1,FF=Te1 => if receive 0x00, Untrip endpoint "e1"; if receive 0xFF, Trip endpoint "e1"

XX=D02 => Dim endpoint 02 to whatever value received

00=T0,FF=U0 => if receive 0x00, Trip the current node; if receive 0xFF, Untrip the current node

SupportedMRTypes string Allows defining which meter report types are supported by the device.

Format:

<CC Hex>-<Supported Type>,<Supported Type>;<CC Hex>-<Supported Type>,<Supported Type>

where:

  • CC Hex  : the Hex value of the command class (without 0x):
    • 0x31 for COMMAND_CLASS_SENSOR_MULTILEVEL
    • 0x32 for COMMAND_CLASS_METER
  • Supported Type  : The HEX value of the type supported for the Command class without 0x
    • Supported types for COMMAND_CLASS_SENSOR_MULTILEVEL:
      • Temperature = 0x01
      • General = 0x02
      • Luminance = 0x03
      • Power = 0x04
      • RelativeHumidity = 0x05
      • Velocity = 0x06
      • Direction = 0x07
      • AtmosphericPressure = 0x08
      • BarometricPressure = 0x09
      • SolarRadiation = 0x0A
      • DewPoint = 0x0B
      • RainRate = 0x0C
      • TideLevel = 0x0D
      • Weight = 0x0E
      • Voltage = 0x0F
      • Current = 0x10
      • CO2level = 0x11
      • AirFlow = 0x12
      • TankCapacity = 0x13
      • Distance = 0x14
      • SeismicIntensity = 0x19
      • UltraViolet = 0x1B
    • Supported types for COMMAND_CLASS_METER:
      • Electric=0x01
      • Gas=0x02
      • Water=0x03

Examples:

31-0F,0E,10,1B;32-01,03 => Device supports Voltage, Weight, Current and UltraViolet for COMMAND_CLASS_SENSOR_MULTILEVEL and Electric and Water from COMMAND_CLASS_METER

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.

NoChildren boolean If this variable is 1, delete the child devices, and don't allow the creation of other child devices, to avoid creating ghost devices.
AlarmTypes string (NOTE: this is its new service. urn:micasaverde-com:serviceId:HaDevice1 was left unchanged to mantain backward compatibility.)

Allows setting what each Alarm Type does for devices using COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION. The format is:

AlarmTypes:AlarmLevels:AlarmCode:Action;AlarmTypes:AlarmLevels:AlarmCode:Action

where:

  • AlarmTypes : type1,type2-type3,!type4
  • AlarmLevels : 00,01,05-20,!FF
  • AlarmCode : SMOKE, CO, TAMPER_ALARM, etc.
  • Action : 0 = don't update the Tripped variable, 1 = update the Tripped variable, 2 = ignore the message (i.e. don't update the sl_Alarm variable)

Example:

01:FF:SMOKE:1;0C:FF::1;0D:FF:TAMPER_ALARM:0
  • if Alarm Type is 0x01 and the Alarm Level is 0xFF, then set the sl_Alarm variable to "SMOKE" and trip the sensor
  • if Alarm Type is 0x0C and the Alarm Level is 0xFF, don't update the sl_Alarm variable, and trip the sensor
  • if Alarm Type is 0x0D and the Alarm Level is 0xFF, then set the sl_Alarm variable to "TAMPER_ALARM", but don't trip the sensor
AlarmTypesV2 string Allows customizing the handling of the COMMAND_CLASS_ALARM / COMMAND_CLASS_NOTIFICATION >= v2 messages.

The format is a ';' separated list of tokens. Format of each token:

TypesV1:LevelV1:NotificationStatus:NotificationType:Event:AlarmCode:TripValue

Where:

  • TypesV1 : type1_v1,type2_v1-type3_v1,!type4_v1, XX (don't care)
  • LevelV1 : 00,01,02-05,!FF, XX (don't care)
  • NotificationStatus : 01-FF, XX (don't care)
  • NotificationType : type1,type2-type3,!type4, XX (don't care)
  • Event : 00,01,03-5A,!04,!FF, XX (don't care)
  • AlarmCode : SMOKE, CO, TAMPER_ALARM, etc. Leave empty if you don't want to set an alarm code.
  • TripValue : 0 = Untrip, 1 = Trip, C = don't update the Tripped variable (only the Alarm Code), X = Ignore

If the TypeV1 or NotificationType are not XX and if there was no match, the function will try the next token.

AssociationGroups string If specified, associate ourselves only with these groups, not all groups. The groups should be given as a comma separated list, like this:
1,3,4,255

You could add this variable with a value = 0 if you want to be in NO association groups.

IgnoreCommandClass string Allows ignoring specific command classes (CC) for that device.

Format:

<CC #1>-<Command #1>,<Command #2>;<CC #2>-*;<CC #3>-<Command #1>
  • Both the command classes and the commands are given by their hex code.
  • * is used as an wild card indicating all commands.

Example:

26-03,05;71-*;20-03

That means: ignore CC 26 commands 03 and 05, all commands from CC 71, and CC 20 command 03.

TemperatureScale string Contains information about the thermostat setpoint.

Format: Precision,Scale,Size

Where:

  • Precision: The number of decimals
  • Scale: 0 = Celsius, 1 = Fahrenheit
  • Size: Size of the setpoint in bits: number of bits = 22+Size
Size Number of bits
1 8
2 16
...
4 32

ZWaveNetwork1

  • Service ID: urn:micasaverde-com:serviceId:ZWaveNetwork1
  • File: S_ZWaveNetwork1.xml


Variable Type Description
NetStatusID ui1 The status of the Z-Wave network:
  • 0 = Status not set
  • 1 = OK
  • 2 = Quiting
  • 3 = Waiting to quit
  • 4 = No dongle
  • 5 = Configuring: still running init/configure scripts
  • 6 = Failure
  • 7 = Initializing
NetStatusText string Full Z-Wave network status description
LastError string The last Z-Wave error in the network
LastUpdate ui4 The UNIX time when the Z-Wave component of the LuaUPnP engine started.
LastDongleBackup ui4 The UNIX time of the last Z-Wave dongle backup.
LastHeal ui4 The UNIX time of the last Z-Wave network heal.
VersionInfo boolean The Z-Wave version.
HomeID boolean The unique ID of the Z-Wave network.
Role boolean Z-Wave specific stuff.
TO3066 boolean Internal stuff.
ComPort string This is the port where MiOS will search for the Z-Wave dongle. On Vera Lite, this is /dev/ttyS0.
LockComPort boolean If this is "1", MiOS won't search for the Z-Wave dongle on the other available ports if it doesn't find it on ComPort.
Use45 boolean If this is "1", use Z-Wave version 3.20 instead of 2.78.
UseMR boolean If this is "1", use MiOS routing.
LimitNeighbors boolean With MiOS routing: if this is "1", when the routing table is created, consider only Z-Wave's neighbors as valid options.
PollingEnabled boolean If this is "1", MiOS will automatically poll the Z-Wave devices.
PollDelayInitial ui1 Number of seconds after the LuaUPnP engine has (re-)started before the polling loop begins.
PollDelayDeadTime ui1 Number of seconds MiOS must not have transmitted any non-poll command before the next poll command is sent.
PollMinDelay ui1 Number of seconds between poll commands.
PollFrequency ui1 Minimum number of seconds between poll commands to the same node.
SceneIDs string Used for scene controllers. This is a CSV where each item has this format: node#-button#=ZWaveSceneID


Action Arguments Description
Name Type or Related Variable
ResetNetwork ResetMode string Reset the Z-Wave network.
  • ResetMode can be "SIS" or "SUC".
  • HomeID 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.
  • ZeroMemory: if this is "1", the memory will be zeroed before resetting.
HomeID string
ZeroMemory boolean
PutByte StartAddress string Used to convert Z-Wave from 2.78 to 3.20 in which case the StartAddress parameter must be "convert502_452" and the rest are ignored.
StopAddress string
Value ui4
ReconfigureAllNodes FailedOnly boolean Reconfigure the Z-Wave nodes. If FailedOnly is "1", only the devices that failed to configure are reconfigured.
UpdateNetwork none Get network update from SUC/SIS.
UpdateNeighbors Device ui4 Update the neighbor nodes of the given device. Device is the device number.
BackupDongle Restore boolean Backs up the Z-Wave network. The backup is in /etc/cmh/dongle.dump. If Restore is "1", the Z-Wave network is restored from the backup.
PollAllNodes none -
RemoveNodes InclusionMode string Puts Vera in exclude mode.
  • InclusionMode can be "FullPower" or anything else, in which case the exclusion will be low power.
  • NodeType is the type of node to be excluded. The valid values are:
    • 1 = any
    • 2 = controller
    • 3 = slave
    • 4 = existing
    • 5 = stop
  • Timeout is the number of seconds Vera will be in exclude mode.
  • If Multiple is "0" then Vera will exit exclude mode after a node is excluded.
  • If Reload is "1" the LuaUPnP engine will be restarted after Vera exits exclude mode.
NodeType ui1
Timeout ui1
Multiple boolean
Reload boolean
AddNodes InclusionMode string Puts Vera in include mode.
  • InclusionMode can be "FullPower" or anything else, in which case the inclusion will be low power.
  • NodeType is the type of node to be included. The valid values are:
    • 1 = any
    • 2 = controller
    • 3 = slave
    • 4 = existing
    • 5 = stop
  • Timeout is the number of seconds Vera will be in include mode.
  • If Multiple is "0" then Vera will exit include mode after a node is included.
  • ControllerShift must be "0".
  • If Reload is "1" the LuaUPnP engine will be restarted after Vera exits include mode.
  • PK_KitDevice is the KitDevice number of the device we expect to be included.
NodeType ui1
Timeout ui1
Multiple boolean
ControllerShift boolean
Reload boolean
PK_KitDevice ui4
DownloadNetwork none Copy the Z-Wave network from a master controller.
HealNetwork BatteryMinutes ui1 Heals/consolidates the Z-Wave network.
  • BatteryMinutes: how many minutes to wait for battery operated devices to be discovered.
  • If Node is not blank, then only this node will be repaired.
  • StressCycles is the number of cycles to stress test each node.
  • If Configure is "1", then all the devices will be re-configured when done.
  • If ManualRoute is "1", then only update MiOS routing (overrides other settings).
  • StartStage is the starting heal stage. The valid values are:
    • 1 = Request network update.
    • 2 = Request neighbor node update.
    • 3 = Update the routing tables and neighbor nodes.
    • 4 = Calculate the best routes.
    • 5 = Re-configure all nodes.
    • 6 = Wait BatteryMinutes to request neighbor node update and configure all battery operated nodes.
    • 7 = Do a stress test for StressCycles.
  • StopStage: Same as StartStage.
Node ui1
StressCycles ui1
Configure boolean
ManualRoute boolean
StartStage ui1
StopStage ui1
SetPolling IsTemporary boolean Set the polling parameters.
  • If IsTemporary is "1", then these polling settings will be lost when the LuaUPnP engine is reloaded.
  • PollingEnabled: see the related variable.
  • PollDelayInitial: see the related variable.
  • PollDelayDeadTime: see the related variable.
  • PollMinDelay: see the related variable.
  • PollFrequency: see the related variable.
PollingEnabled PollingEnabled
PollDelayInitial PollDelayInitial
PollDelayDeadTime PollDelayDeadTime
PollMinDelay PollMinDelay
PollFrequency PollFrequency
SendData Node ui1 Sends the Z-Wave Data to the Z-Wave Node.

Examples:

1. Set parameter 29 to "3" on node 15:

  • HTTP request:

/data_request?id=action&DeviceNum=1&serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&action=SendData&Node=15&Data=x70%204%2029%201%203

  • Lua:

luup.call_action("urn:micasaverde-com:serviceId:ZWaveNetwork1", "SendData", {Node=15, Data="x70 4 29 1 3"}, 1)

2. Turn on a light (node 7):

  • HTTP request:

/data_request?id=action&DeviceNum=1&serviceId=urn:micasaverde-com:serviceId:ZWaveNetwork1&action=SendData&Node=7&Data=x20%201%20xFF

  • Lua:

luup.call_action("urn:micasaverde-com:serviceId:ZWaveNetwork1", "SendData", {Node=7, Data="x20 1 xFF"}, 1)

Data string
SimulateIncomingData Data string Calls the Z-Wave message handler for the given data.


USBUIRT1

  • Service ID: urn:micasaverde-com:serviceId:USBUIRT1
  • File: S_USBUIRT.xml


Variable Type Description
ComPort string The path of the USB port the UIRT is connected to. On Vera Lite this is /dev/ttyUSB0


Camera1

  • Service ID: urn:micasaverde-com:serviceId:Camera1
  • File: S_Camera1.xml


Variable Type Description
VideoURLs string This variable defines the streaming parameters, and without it streaming doesn't work. This variable has this structure:

Info1:URL1:Info2:URL2:


The Info parameters are:

1. The protocol: can be rtsp or http

2. HTTP authentication required: 1 = yes, send the username and password in the request, 0 = no, don't send the username and password

3. Video codec: mpeg4 | mjpeg | etc.

4. Audio codec: blank = no audio

5. Resolution: t = thumbnail, s = small, m = medium, l = large

6. Width: 640

7. Height: 480

8. Players: q|a|i|w, a string of characters indicating known good players. q = Quicktime plugin, a = Android, i = iPhone, w = normal web browser.


The URL is the streaming URL compatible with the players specified in Info.

Currently only the protocol, HTTP auth, players and URL parameters are used. The rest of the parameters are ignored.


VideoURLs example for VistaCam:

rtsp,0,mpeg4,,m,640,480,qai:img/media.sav:http,0,mjpeg,,m,640,480,w:img/video.mjpeg:

URL string This is the URL to get a snapshot from the camera.
RingBuffer string This variable contains the ring buffer parameters.

The format is: Enabled,BufferSeconds,NumFramesToPurge,Format,URL

  • Enabled can be 0 or 1. If it's 1, the ring buffer is enabled.
  • BufferSeconds: 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.
  • NumFramesToPurge: how many frames to wait before attempting to purge.
  • Format can be 2=MJPEG, 3=MP4.
  • URL is the streaming URL.
RelatedSensors string Comma separated list of device numbers: archive a photo whenever one of the sensors is tripped.
SensorArchiveSeconds ui4 How many seconds to archive the video after the sensor(s) are tripped.
RelatedLights string Comma separated list of device numbers: which lights should be turned on when viewing this camera.
LightOptions string When to turn on the lights:
  • V: when I view the camera from the web or phone;
  • S: when the sensor(s) above are tripped and they are armed;
  • B: when the sensors above are tripped and they are *not* armed;
  • A: when you take an automatic picture for the archive;

So VSBA means do them all.

AutoArchiveSeconds ui4 Archives a picture from the camera every this number of seconds.
AutoArchivePreserveDays ui4 How many days to keep the pictures in the archive.
Streams string Contains a list separated by semicolons, where each element in the list has the following format:

<stream type>,<protocol>,<url>

  • The stream types currently supported are: flv, flv_low, rtsp, rtsp_low.

The types with the "_low" suffix are the low bandwidth versions, and are used when streaming through the relay servers.

  • The supported protocols are: http, rtsp.

Example:

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


PanTiltZoom1

  • Service ID: urn:micasaverde-com:serviceId:PanTiltZoom1
  • File: S_PanTiltZoom1.xml


Action Arguments Description
Name Type or Related Variable
MoveLeft none -
MoveRight none -
MoveUp none -
MoveDown none -
ZoomIn none -
ZoomOut none -
GoToPreset presetNumber ui1 Moves the camera to the given preset.


SwitchPower1

  • Service ID: urn:upnp-org:serviceId:SwitchPower1
  • File: S_SwitchPower1.xml


Variable Type Description
Target boolean The target state of the device.
Status boolean The current state of the device.


Action Arguments Description
Name Type or Related Variable
SetTarget newTargetValue Target Sets the target state of the device. Used to turn a device On or Off.


WindowCovering1

  • Service ID: urn:upnp-org:serviceId:WindowCovering1
  • File: S_WindowCovering1.xml


Action Arguments Description
Name Type or Related Variable
Up none -
Down none -
Stop none -


Dimming1

  • Service ID: urn:upnp-org:serviceId:Dimming1
  • File: S_Dimming1.xml


Variable Type Description
LoadLevelTarget ui1 The target dimming value; it doesn't represent the actual dimming state.
LoadLevelStatus ui1 Represents the actual dimming state.
TurnOnBeforeDim boolean Indicates that this device needs to turn on before setting the dimming level.
AllowZeroLevel boolean This device allows to set 0% level in ON state.


Action Arguments Description
Name Type or Related Variable
SetLoadLevelTarget newLoadlevelTarget LoadLevelTarget Sets the desired dimming level. Used to adjust the dimming level of a device.


DoorLock1

  • Service ID: urn:micasaverde-com:serviceId:DoorLock1
  • File: S_DoorLock1.xml


Variable Type Description
Target boolean Represents the target (desired) door state.
Status boolean Represents the current door state. "1" = locked, "0" = unlocked
PinCodes string The list of PIN codes.

Syntax:

<VERSION=2>user_code_id,active,PIN_code(encrypted),name(a-z,0-9);
slot,slot_lock,w,[d|s],dow,hour_start,minute_start,hour_stop,minute_stop;
slot,slot_lock,t,[d|s],start,stop;\t
<VERSION=3>next_available_user_code_id\t
user_code_id,active,date_added,date_used,PIN_code(encrypted),name(a-z,0-9);
slot,slot_lock,w,[d|s],dow,hour_start,minute_start,hour_stop,minute_stop;
slot,slot_lock,t,[d|s],start,stop;\t

Where:

  • VERSION is used to track syntax changes.
  • active can be one of the following values:
    • 0 = The code isn't programmed.
    • 1 = The code is permanently programmed into the lock, which doesn't support hardware-based scheduling.
    • 2 = The code is permanently programmed into the lock, which does support hardware-based scheduling.
    • 3 = The code is programmed into the lock and will be removed by software later.
    • 4 = The code is not programmed into the lock, but it will be programmed later by the software.
    • 5 = The code is programmed into the lock which supports hardware-based scheduling and will enable/disable it automatically.
  • The slotid is an auto-incrementing number.
  • The slotid_lock is the ID in the lock.
  • The restriction type: w (weekly) or d (daily repeating) = day of week based, t = time based (yearly)
  • [d|s]: internal stuff.
NumSchedules string Maximum number of restrictions supported by the door lock.

Syntax:

max_weekly,max_yearly,max_daily_repeating

Where:

  • max_weekly is the number of weekly restrictions slots.
  • max_yearly is the number of yearly restrictions slots.
  • max_daily_repeating is the number of daily repeating restrictions slots.
MinPinSize and MaxPinSize ui1 The minimum and maximum number of digits of the PIN code.
AllowedPinChars string Which characters are allowed in a PIN code.

The only format which is currently supported is:

Dmin-Dmax

where:

  • Dmin is the smallest digit allowed;
  • Dmax is the largest digit allowed.

Example: 2-7 : allow only digits >= 2 and <= 7.

sl_UserCode string Contains information about the last used PIN code:
UserID="<pin_slot>" UserName="<pin_code_name>"
sl_PinFailed boolean This becomes "1" when a bad PIN code is entered.
sl_CodeChanged ui1 If a PIN code was changed using the lock keypad, this contains the PIN code index number.
sl_LockButton boolean This is "1" if the Lock button has been pressed on the lock keypad.
sl_LockFailure boolean This is "1" if the lock fails to operate.
sl_UnauthUser boolean This is "1" if the user code was entered outside of a valid date.
sl_LockChanged ui1 If a PIN code was changed using the lock keypad, this contains the PIN code index number.
sl_LowBattery boolean This is "1" when the battery level is low.
sl_VeryLowBattery boolean This is "1" when the battery level is very low.
UsesPinCodes boolean If this is "0", this door lock doesn't use PIN codes. (e.g. Danalock)


Action Arguments Description
Name Type or Related Variable
SetTarget newTargetValue Target Sets the target (desired) state of the door. Used to lock and unlock the door.
SetPin UserCodeName string Adds a PIN code. This code will be added to the PinCodes variable and to the door lock.
  • UserCodeName is the PIN code name.
  • newPin is the new PIN code.
  • user is the PIN code slot number.
  • purge: if this is 1, all the schedules programmed into the door lock will be removed.
  • json is a json that looks like this:
{
 "user_code" : {
     "slot" : "<pin_slot>",        // Used when adding/updating a PIN code.
     "name" : "<name>",
     "code" : "<pin_code>",
     "user" : "<restriction_slot>" // Used when adding/updating restrictions.
 },
 "weekly_schedules" : [
     {
         "day_of_week" : "136"
         "from_time" : "12:34"
         "to_time" : "23:45"
     },
     {
         "day_of_week" : "25"
         "from_time" : "13:46"
         "to_time" : "21:09"
     }
     ...
 ],
 "daily_schedules" : [
     {
         "start_date" : "YYYY-MM-DD HH:MM:SS"
         "stop_date" : "YYYY-MM-DD HH:MM:SS"
     },
     {
         "start_date" : "YYYY-MM-DD HH:MM:SS"
         "stop_date" : "YYYY-MM-DD HH:MM:SS"
     }
     ...
 ]
}
    • slot in json is equivalent to user
    • name in json is equivalent to UserCodeName
    • code in json is equivalent to newPin


If the json parameter is present, user, UserCodeName and newPin are ignored.


* The parameters from SetPinValidityDate and SetPinValidityWeekly are also accepted. Internally, this action calls the implementation functions of those actions if StartDate, respectively DayOfWeek parameters are given. The parameters in the json take precedence over the other parameters.

newPin ui4
user ui1
purge boolean
json string
* SetPinValidityDate parameters
* SetPinValidityWeekly parameters
SetPinValidityDate UserCode ui1 Sets the daily time interval in which a PIN code is valid.
  • UserCode is the PIN code slot number. The starting slot number is 1.
  • StartDate and StopDate are strings representing the dates, formatted like this: YYYY-MM-DD HH:MM:SS (SQL DATETIME)
  • Replace: If this parameter is "1" the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.

Example: http://192.168.81.1:3480/data_request?id=action&DeviceNum=6&serviceId=urn:micasaverde-com:serviceId:DoorLock1&action=SetPinValidityDate&UserCode=1&StartDate=2012-09-03%2014:00:00&StopDate=2012-09-03%2015:00:00&Replace=1

StartDate string
StopDate string
Replace boolean
SetPinValidityWeekly UserCode ui1 Sets the weekly time interval in which a PIN code is valid.
  • UserCode is the PIN code slot number. The starting slot number is 1.
  • DayOfWeek contains the days of week numbers when the PIN code is restricted. Monday is '1' and Sunday is '7'.

Example: 1367 means Monday, Wednesday, Saturday and Sunday.

  • StartHour is the hour the restriction starts at.
  • StartMinute is the minute the restriction starts at.
  • StopHour is the hour the restriction stops at.
  • StopMinute is the minute the restriction stops at.
  • Replace: If this parameter is "1" the current restriction is replaced with the new one. Otherwise a new restriction is added, unless there are no more available restriction slots.

Example: http://192.168.81.1:3480/data_request?id=action&DeviceNum=6&serviceId=urn:micasaverde-com:serviceId:DoorLock1&action=SetPinValidityWeekly&UserCode=1&DayOfWeek=1367&StartHour=15&StartMinute=31&StopHour=16&StopMinute=42&Replace=1

DayOfWeek ui4
StartHour ui1
StartMinute ui1
StopHour ui1
StopMinute ui1
Replace boolean
ClearPinValidity UserCode ui4 Clears the given restriction slot.
  • UserCode is the PIN code slot number. The starting slot number is 1.
  • slotID is the restriction slot number. The starting slot number is 1.
slotID ui4
ClearPin UserCode ui1 Removes the PIN code from slot UserCode.

HVAC_UserOperatingMode1

  • Service ID: urn:upnp-org:serviceId:HVAC_UserOperatingMode1
  • File: S_HVAC_UserOperatingMode1.xml


Variable Type Description
ModeTarget string The desired operating mode of the HVAC. Currently MiOS supports only:
  • Off
  • HeatOn
  • CoolOn
  • AutoChangeOver
ModeStatus string The actual operating mode of the HVAC.
EnergyModeTarget string The desired energy mode. Can be Normal or EnergySavingsMode.
EnergyModeStatus string The actual energy mode.
AutoMode boolean If specified, and if 0, the thermostat doesn't support auto mode.


Action Arguments Description
Name Type or Related Variable
SetModeTarget NewModeTarget ModeTarget Sets the desired HVAC operating mode.
SetEnergyModeTarget NewModeTarget EnergyModeTarget Sets the desired energy mode.


HVAC_OperatingState1

  • Service ID: urn:micasaverde-com:serviceId:HVAC_OperatingState1
  • File: S_HVAC_OperatingState1.xml


Variable Type Description
ModeState string Represents what the HVAC is actually doing right now. The most common actions are:
  • Idle
  • Heating
  • Cooling


HVAC_FanOperatingMode1

  • Service ID: urn:upnp-org:serviceId:HVAC_FanOperatingMode1
  • File: S_HVAC_FanOperatingMode1.xml


Variable Type Description
Mode string The fan operation mode. Can be:
  • Auto
  • ContinuousOn
  • PeriodicOn
FanStatus string Represents the current fan state; can be On or Off.


Action Arguments Description
Name Type or Related Variable
SetMode NewMode Mode Sets the fan operating mode. Changes the Mode variable.


TemperatureSetpoint1

  • Service ID: urn:upnp-org:serviceId:TemperatureSetpoint1
  • File: S_TemperatureSetpoint1.xml


Variable Type Description
SetpointTarget i4 The target temperature setpoint for the current thermostat mode.
CurrentSetpoint i4 The actual temperature setpoint for the current thermostat mode.
AllSetpoints string A comma separated list containing the current setpoints for the following thermostat modes: heat, cool, auto.

Format: HEAT,COOL,AUTO

Example: AllSetpoints = 72,74,73

  • 72 = heating setpoint
  • 74 = cooling setpoint
  • 73 = auto mode setpoint
AutoMode i4 If specified, the thermostat doesn't support auto setpoint, so set heat+cool this many degrees +/-
ReportMode char "M" = The report correspond to the current mode of operation and should update the setpoint in the received mode (default),

"S" = The report correspond to the current operating state and should update the setpoint in the current mode

Range string Reject setpoint change commands whose setpoint is outside the specified range.

Format: RANGEauto;RANGEcool;RANGEheat

where each range has this format:

Cmin,Cmax/Fmin,Fmax

The range limits are inclusive, meaning the new setpoint must be >= Xmin and <= Xmax.

Example: 14,34/58,92;16,44/60,112;-1,32/30,90

  • RANGEauto = 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.
  • RANGEcool = 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.
  • RANGEheat = -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.


Action Arguments Description
Name Type or Related Variable
SetCurrentSetpoint NewCurrentSetpoint CurrentSetpoint Sets the target setpoint.


TemperatureSensor1

  • Service ID: urn:upnp-org:serviceId:TemperatureSensor1
  • File: S_TemperatureSensor1.xml


Variable Type Description
CurrentTemperature i4 -


GenericSensor1

  • Service ID: urn:micasaverde-com:serviceId:GenericSensor1
  • File: S_GenericSensor1.xml


Variable Type Description
CurrentLevel i4 -


LightSensor1

  • Service ID: urn:micasaverde-com:serviceId:LightSensor1
  • File: S_LightSensor1.xml


Variable Type Description
CurrentLevel i4 -


HumiditySensor1

  • Service ID: urn:micasaverde-com:serviceId:HumiditySensor1
  • File: S_HumiditySensor1.xml


Variable Type Description
CurrentLevel i4 -


SecuritySensor1

  • Service ID: urn:micasaverde-com:serviceId:SecuritySensor1
  • File: S_SecuritySensor1.xml


Variable Type Description
Tripped boolean -
Armed boolean This is used by MiOS as a way to disable sending notifications when a sensor is tripped/untripped.
LastTrip i4 This is the UNIX time when the sensor last reported that it was tripped.
IgnoreTripTime i4 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.
AutoUntrip i4 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.


Action Arguments Description
Name Type or Related Variable
SetArmed newArmedValue Armed Arms or disarms the sensor.

EnergyMetering1

  • Service ID: urn:micasaverde-com:serviceId:EnergyMetering1
  • File: S_EnergyMetering1.xml


Variable Type Description
Watts ui4 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 UserSupliedWattage.
Pulse ui4 -
UserSuppliedWattage ui4 See Watts.

Note: For thermostats, UserSuppliedWattage 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.

KWH float If the device can report its energy consumption, this is the value reported by the device.
KWHReading i4 The time, in Unix timestamp format, of the last energy consumption report.
Log string Comma separated list of values:

CurrentConsumption,Average,Peak,LastReading,Seconds

  • LastReading is the Unix time.
  • Seconds is the period of time the Average value was computed for.


Action Arguments Description
Name Type or Related Variable
ResetKWH none -

IrTransmitter1

  • Service ID: urn:micasaverde-com:serviceId:IrTransmitter1
  • File: S_IrTransmitter1.xml


Action Arguments Description
Name Type or Related Variable
SendProntoCode ProntoCode string Sends the given IR code.


SerialPort1

  • Service ID: urn:micasaverde-org:serviceId:SerialPort1
  • File: S_SerialPort1.xml


Variable Type Description
path string The path of the serial port. On Vera Lite it's /dev/ttyUSB0
baud ui4 The baud rate.
stopbits ui1 The number of stop bits.
databits ui1 The number of data bits.
parity string Can be odd or even.


SceneController1

  • Service ID: urn:micasaverde-com:serviceId:SceneController1
  • File: S_SceneController1.xml


Variable Type Description
sl_SceneActivated ui2 The number of the activated scene on the scene controller.
sl_SceneDeactivated ui2 The number of the deactivated scene on the scene controller.
Scenes string  ?
LastSceneID string The scene ID (as reported by the scene controller) of the last activated or deactivated scene.
LastSceneTime ui4 The UNIX time when the scene was last activated or deactivated.
ManageLeds boolean If this is "1", automatically turn on/off the scene indicator lights.
NumButtons string This variable has the following format:

NumberOfButtons[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,ButtonNumber-AssociationNumber-SceneNumber=ButtonName[,etc.]]]

Where:

  • ButtonNumber must be from 1 to NumberOfButtons.
  • AssociationNumber is the association group.
  • SceneNumber is an event ID, and it's sent instead of the one we program.
  • ButtonName is the user friendly name of the button.

Example:

2,1-1-1=Tap Button,2-2-2=Hold Button

ButtonMapping string This variable has the following format:

OldButtonNumber-Attribute-NewButtonNumber[,OldButtonNumber-Attribute-NewButtonNumber[,etc.]]

Where Attribute has the following meaning:

  • 0 = Key pressed
  • 1 = Key is released, sent only as a termination of a Key Held Down sequence
  • 2 = Key held down
  • 3 = Key double tapped 1
  • 4 = Key triple tapped 1

1 These attributes were added in COMMAND_CLASS_CENTRAL_SCENE V2, so it's not available on all the scene controllers.

Example:

1-0-1,1-3-2,2-0-3,2-3-4,3-0-5,3-3-6,4-0-7,4-3-8

SceneShortcuts string  ?
FiresOffEvents boolean  ?
ActivationMethod ui1 Z-Wave stuff.

SceneControllerLED1

  • Service ID: urn:micasaverde-com:serviceId:SceneControllerLED1
  • File: S_SceneControllerLED1.xml


Variable Type Description
LightSettings ui1 The lights' state. The lower 4 bits of LightSettings 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.


Action Arguments Description
Name Type or Related Variable
SetLight newValue ui4 Change a light's state.
  • newValue is the new light state. The valid values are:
    • 0 = off
    • 1 = green
    • 2 = red
    • 3 = orange
  • Indicator is the button number.
Indicator ui4


IrDevice1

  • Service ID: urn:micasaverde-com:serviceId:IrDevice1
  • File: S_IrDevice1.xml


Variable Type Description
Codesets string
Codeset string
Remote int
Scene string


Action Arguments Description
Name Type or Related Variable
SendCode Codeset Codeset
Button Remote
Repeat Remote


Color1

  • Service ID: urn:micasaverde-com:serviceId:Color1
  • File: S_Color1.xml


Variable Type Description
CurrentColor string
TargetColor string
ColorMode string Currently used only for Revogi.

Can have only 2 values:

  • 0 = Colorful mode
  • 1 = Color temperature mode
ColorChannelPriorities string Specify the color channel priorities like this:

0>1>2,3,4

That value can be interpretted like this: channel 0 has priority over channel 1, which has priority over channels 2, 3 and 4.

SupportedColors string
Personal tools