Updated external content (Jenkins build 1615)

pull/2109/head
openHAB Build Server 2023-07-23 05:33:25 +00:00
parent d5766069af
commit 2cc9a9aafe
11 changed files with 2422 additions and 87 deletions

File diff suppressed because one or more lines are too long

View File

@ -14,14 +14,14 @@ install: auto
{% include base.html %}
<!-- This file is auto-generated by YARD from https://github.com/openhab/openhab-jruby/blob/main/USAGE.md; please do not edit directly -->
<!-- To regenerate, run `bin/yard display -f markdown -o https://openhab.github.io/openhab-jruby/5.0 file:USAGE.md` -->
<!-- To regenerate, run `bin/yard display -f markdown -o https://openhab.github.io/openhab-jruby/5.4 file:USAGE.md` -->
# JRuby Scripting
This add-on provides [JRuby](https://www.jruby.org/) scripting language for automation rules.
Also included is [openhab-scripting](https://openhab.github.io/openhab-jruby/), a fairly high-level Ruby gem to support automation in openHAB.
It provides native Ruby access to common openHAB functionality within rules including items, things, actions, logging and more.
If you're new to Ruby, you may want to check out [Ruby Basics](https://openhab.github.io/openhab-jruby/5.0/file.ruby-basics.html).
If you're new to Ruby, you may want to check out [Ruby Basics](https://openhab.github.io/openhab-jruby/main/file.ruby-basics.html).
- [Why Ruby?](#why-ruby)
- [Installation](#installation)
@ -77,7 +77,7 @@ If you're new to Ruby, you may want to check out [Ruby Basics](https://openhab.g
- [Hooks](#hooks)
- [Calling Java From JRuby](#calling-java-from-jruby)
Additional [example rules are available](https://openhab.github.io/openhab-jruby/5.0/file.examples.html), as well as examples of [conversions from DSL and Python rules](https://openhab.github.io/openhab-jruby/5.0/file.conversions.html).
Additional [example rules are available](https://openhab.github.io/openhab-jruby/main/file.examples.html), as well as examples of [conversions from DSL and Python rules](https://openhab.github.io/openhab-jruby/main/file.conversions.html).
## Why Ruby?
@ -137,7 +137,7 @@ After installing this add-on, you will find configuration options in the openHAB
Alternatively, JRuby configuration parameters may be set by creating a `jruby.cfg` file in `conf/services/`.
By default this add-on includes the [openhab-scripting](https://github.com/openhab/openhab-jruby) Ruby gem and automatically `require`s it.
This allows the use of [items](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL.html#items-class_method), [rules](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL.html#rules-class_method), [shared_cache](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL.html#shared_cache-class_method) and other objects in your scripts.
This allows the use of [items](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL.html#items-class_method), [rules](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL.html#rules-class_method), [shared_cache](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL.html#shared_cache-class_method) and other objects in your scripts.
This functionality can be disabled for users who prefer to manage their own gems and `require`s via the add-on configuration options.
Simply change the `gems` and `require` configuration settings.
@ -277,14 +277,14 @@ See [File Based Rules](#file-based-rules) for examples of creating rules within
When you use "Item event" as trigger (i.e. "[item] received a command", "[item] was updated", "[item] changed"), there is additional context available for the action in a variable called `event`.
This tables gives an overview of the `event` object for most common trigger types. For full details, explore [OpenHAB::Core::Events](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Events.html).
This tables gives an overview of the `event` object for most common trigger types. For full details, explore [OpenHAB::Core::Events](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Events.html).
| Property Name | Type | Trigger Types | Description | Rules DSL Equivalent |
| ------------- | ------------------------------------------------------------------------------------------- | -------------------------------------- | ---------------------------------------------------- | ---------------------- |
| `state` | [State](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/State.html) or `nil` | `[item] changed`, `[item] was updated` | State that triggered event | `triggeringItem.state` |
| `was` | [State](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/State.html) or `nil` | `[item] changed` | Previous state of Item or Group that triggered event | `previousState` |
| `command` | [Command](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/Command.html) | `[item] received a command` | Command that triggered event | `receivedCommand` |
| `item` | [Item](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Items/Item.html) | all | Item that triggered event | `triggeringItem` |
| Property Name | Type | Trigger Types | Description | Rules DSL Equivalent |
| ------------- | -------------------------------------------------------------------------------------------- | -------------------------------------- | ---------------------------------------------------- | ---------------------- |
| `state` | [State](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/State.html) or `nil` | `[item] changed`, `[item] was updated` | State that triggered event | `triggeringItem.state` |
| `was` | [State](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/State.html) or `nil` | `[item] changed` | Previous state of Item or Group that triggered event | `previousState` |
| `command` | [Command](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/Command.html) | `[item] received a command` | Command that triggered event | `receivedCommand` |
| `item` | [Item](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Items/Item.html) | all | Item that triggered event | `triggeringItem` |
```ruby
logger.info(event.state == ON)
@ -364,7 +364,7 @@ The openHAB JRuby Scripting runtime attempts to provide a familiar environment t
### Items
The [items](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL.html#items-class_method) object allows interactions with openHAB items.
The [items](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL.html#items-class_method) object allows interactions with openHAB items.
However, most items can be referred to directly by name:
```ruby
@ -477,7 +477,7 @@ My_Item << ON
```
Note: all possible commands are supported on the corresponding item types, e.g. `on`, `off`, `up`, `down`, `play`, `pause`, `stop`, etc.
For more details, see the individual item classes under [OpenHAB::Core::Items](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Items.html).
For more details, see the individual item classes under [OpenHAB::Core::Items](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Items.html).
##### Sending Commands to an Item Only When Its State is Different
@ -492,7 +492,7 @@ logger.info("Turning off the light") if My_Item.ensure.off
##### Timed Commands
A [Timed Command](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Items/TimedCommand.html) is similar to the openHAB Item's [expire parameter](https://www.openhab.org/docs/configuration/items.html#parameter-expire) but it offers more flexibility.
A [Timed Command](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Items/TimedCommand.html) is similar to the openHAB Item's [expire parameter](https://www.openhab.org/docs/configuration/items.html#parameter-expire) but it offers more flexibility.
It removes the need to manually create a timer.
The command is sent to the item, then after the duration has elapsed, reverted.
It also handles automatically canceling the timer if the item changes states before it reverts.
@ -511,7 +511,7 @@ My_Switch.update ON
#### State
The Item's state is accessible through [Item#state](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Items/GenericItem.html#state-instance_method):
The Item's state is accessible through [Item#state](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Items/GenericItem.html#state-instance_method):
```ruby
if My_Item.state == ON
@ -531,7 +531,7 @@ end
Note: Boolean helper methods are available depending on the item / state type.
For example `up?`, `down?`, `closed?`, `open?`, etc.
Check if an Item's state is [NULL](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/UnDefType.html#NULL-constant) of [UNDEF](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/UnDefType.html#UNDEF-constant):
Check if an Item's state is [NULL](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/UnDefType.html#NULL-constant) of [UNDEF](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/UnDefType.html#UNDEF-constant):
```ruby
if My_Item.state?
@ -553,11 +553,11 @@ Indoor_Temperature.state > Outdoor_Temperature.state + 5 | '°C'
Indoor_Temperature.state - Outdoor_Temperature.state > 5 | '°C'
```
See [unit block](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL.html#unit-class_method)
See [unit block](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL.html#unit-class_method)
##### Range checking
Types that are comparable, such as [StringType](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/StringType.html), [DateTimeType](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/DateTimeType.html), [DecimalType](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/DecimalType.html), [PercentType](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/PercentType.html),
Types that are comparable, such as [StringType](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/StringType.html), [DateTimeType](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/DateTimeType.html), [DecimalType](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/DecimalType.html), [PercentType](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/PercentType.html),
include Ruby's [Comparable](https://docs.ruby-lang.org/en/master/Comparable.html) module which provides
the handy [between?](https://docs.ruby-lang.org/en/master/Comparable.html#method-i-between-3F) method.
@ -588,10 +588,10 @@ end
##### Loose Type Comparisons
Some openHAB item types can accept different command types.
For example, a [DimmerItem](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Items/DimmerItem.html) can accept a command with an [OnOffType](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/OnOffType.html), [IncreaseDecreaseType](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/IncreaseDecreaseType.html) or a [PercentType](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/PercentType.html).
However, ultimately an item only stores its state in its native type, e.g. a [DimmerItems](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Items/DimmerItem.html)'s native type is [PercentType](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/PercentType.html).
In some contexts, you don't care about the precise value of a particular state, and just want to know if it fits the general definition of [ON](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/OnOffType.html#ON-constant), etc.
You can either explicitly convert to the general type, _or_ all of the state predicate methods available on [Item](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Items/Item.html), [ItemStateEvent](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Events/ItemStateEvent.html), [ItemStateChangedEvent](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Events/ItemStateChangedEvent.html), [ItemCommandEvent](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Events/ItemCommandEvent.html), as well as specific types such as [PercentType](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/PercentType.html) and [HSBType](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Types/HSBType.html), will do the conversion internally.
For example, a [DimmerItem](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Items/DimmerItem.html) can accept a command with an [OnOffType](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/OnOffType.html), [IncreaseDecreaseType](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/IncreaseDecreaseType.html) or a [PercentType](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/PercentType.html).
However, ultimately an item only stores its state in its native type, e.g. a [DimmerItems](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Items/DimmerItem.html)'s native type is [PercentType](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/PercentType.html).
In some contexts, you don't care about the precise value of a particular state, and just want to know if it fits the general definition of [ON](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/OnOffType.html#ON-constant), etc.
You can either explicitly convert to the general type, _or_ all of the state predicate methods available on [Item](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Items/Item.html), [ItemStateEvent](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Events/ItemStateEvent.html), [ItemStateChangedEvent](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Events/ItemStateChangedEvent.html), [ItemCommandEvent](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Events/ItemCommandEvent.html), as well as specific types such as [PercentType](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/PercentType.html) and [HSBType](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Types/HSBType.html), will do the conversion internally.
```ruby
DimmerItem1.update(10)
@ -619,7 +619,7 @@ DimmerItem1 << 100 # => This will trigger the logger.info above
#### Metadata
Metadata is accessed through [Item#metadata](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Items/Item.html#metadata-instance_method).
Metadata is accessed through [Item#metadata](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Items/Item.html#metadata-instance_method).
```ruby
metadata = My_Item.metadata['namespace'].value
@ -627,7 +627,7 @@ metadata = My_Item.metadata['namespace'].value
#### Persistence
[Persistence](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Items/Persistence.html) methods are available directly on [Items](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Items/Item.html).
[Persistence](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Items/Persistence.html) methods are available directly on [Items](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Items/Item.html).
```ruby
logger.info("KitchenDimmer average_since #{KitchenDimmer.average_since(1.day.ago)}")
@ -636,7 +636,7 @@ daily_max = My_Item.maximum_since(24.hours.ago)
#### Semantic Model
Many [helper methods](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Items/Semantics.html) are available to make it easy to navigate the semantic model to get related items.
Many [helper methods](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Items/Semantics.html) are available to make it easy to navigate the semantic model to get related items.
```ruby
LivingRoom_Motion.location # Location of the motion sensor
@ -648,7 +648,7 @@ LivingRoom_Motion.location # Location of the motion s
#### Linked Things
If an [Item](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Items/Item.html) is linked to a [Thing](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Things/Thing.html), you can easily retrieve it.
If an [Item](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Items/Item.html) is linked to a [Thing](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Things/Thing.html), you can easily retrieve it.
```ruby
linked_thing = My_Item.thing
@ -665,7 +665,7 @@ end
#### Item Builder
New items can be created via [items.build](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Items/Registry.html#build-instance_method).
New items can be created via [items.build](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Items/Registry.html#build-instance_method).
Note that by default items are not persisted to storage, and will be removed when the script unloads.
```ruby
@ -680,12 +680,18 @@ items.build do
group_item Equipment, tags: Semantics::HVAC, thing: "binding:thing"
string_item Mode, tags: Semantics::Control, channel: "mode"
end
# dimension Temperature inferred
number_item OutdoorTemp, format: "%.1f %unit%", unit: "°F"
# unit lx, dimension Illuminance, format "%s %unit%" inferred
number_item OutdoorBrightness, state: 10_000 | "lx"
end
```
### Things
The [things](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL.html#things-class_method) object allows interactions with openHAB things.
The [things](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL.html#things-class_method) object allows interactions with openHAB things.
Get Thing Status:
@ -719,9 +725,9 @@ logger.info "TV enabled: #{thing.enabled?}"
### Actions
[openHAB built-in actions](https://www.openhab.org/docs/configuration/actions.html) are available as children of the [Actions](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Actions.html) module.
[openHAB built-in actions](https://www.openhab.org/docs/configuration/actions.html) are available as children of the [Actions](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Actions.html) module.
Action classes are also imported into the top-level namespace.
Thing actions can be called directly on the [Thing](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Things/Thing.html).
Thing actions can be called directly on the [Thing](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Things/Thing.html).
Publish an MQTT Message:
@ -766,7 +772,7 @@ This behaviour is due to [log4j2](https://logging.apache.org/log4j/2.x/) requiri
logger = OpenHAB::Log.logger("org.openhab.custom")
```
The [logger](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Logger.html) is similar to a standard [Ruby Logger](https://docs.ruby-lang.org/en/master/Logger.html).
The [logger](https://openhab.github.io/openhab-jruby/main/OpenHAB/Logger.html) is similar to a standard [Ruby Logger](https://docs.ruby-lang.org/en/master/Logger.html).
Supported logging functions include:
- `logger.log(severity, obj)`
@ -788,7 +794,7 @@ sleep 1.5 # sleep for 1.5 seconds
See Ruby docs on [sleep](https://docs.ruby-lang.org/en/master/Kernel.html#method-i-sleep).
`sleep` should be avoided if possible. A [delay](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#delay-instance_method) can be inserted in between two execution blocks to achieve the same result. This delay is implemented with a timer.
`sleep` should be avoided if possible. A [delay](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#delay-instance_method) can be inserted in between two execution blocks to achieve the same result. This delay is implemented with a timer.
This is available only on file-based rules.
```ruby
@ -800,8 +806,8 @@ rule "delay something" do
end
```
Alternatively a timer can be used in either a file-based rule or in a UI based rule using [after](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL.html#after-class_method).
After takes a [Duration](#durations), e.g. `10.minutes` instead of using [ZonedDateTime](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/ZonedDateTime.html).
Alternatively a timer can be used in either a file-based rule or in a UI based rule using [after](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL.html#after-class_method).
After takes a [Duration](#durations), e.g. `10.minutes` instead of using [ZonedDateTime](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/ZonedDateTime.html).
```ruby
rule "simple timer" do
@ -898,7 +904,7 @@ after 3.minutes, id: event.item do # Use the triggering item as the timer ID
end
```
Furthermore, you can manipulate the managed timers using the built-in [timers](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/TimerManager.html) object.
Furthermore, you can manipulate the managed timers using the built-in [timers](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/TimerManager.html) object.
```ruby
# timers is a special object to access the timers created with an id
@ -923,7 +929,7 @@ end
### Cache
The [shared_cache](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL.html#shared_cache-class_method) object provides a cache that can be used to set and retrieve objects that will be persisted between reloads of scripts, and available between different rules.
The [shared_cache](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL.html#shared_cache-class_method) object provides a cache that can be used to set and retrieve objects that will be persisted between reloads of scripts, and available between different rules.
It acts similarly to a regular Ruby Hash.
Just be wary of Ruby-only data types (such as Symbols) that won't be accessible between different scripts.
@ -952,13 +958,13 @@ shared_count[:counter] = count + 1
Several options are available for time related code, including but not limited to:
- Java [LocalDate](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/LocalDate.html) - represents a date with no time
- Java [LocalTime](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/LocalTime.html) - represents a time with no date
- Java [Month](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/Month.html)
- Java [MonthDay](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/MonthDay.html) - represents a date with no time or year
- Java [ZonedDateTime](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/ZonedDateTime.html) - represents a specific instance with a date and time
- Java [Duration](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/Duration.html)
- Java [Period](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/Period.html)
- Java [LocalDate](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/LocalDate.html) - represents a date with no time
- Java [LocalTime](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/LocalTime.html) - represents a time with no date
- Java [Month](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/Month.html)
- Java [MonthDay](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/MonthDay.html) - represents a date with no time or year
- Java [ZonedDateTime](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/ZonedDateTime.html) - represents a specific instance with a date and time
- Java [Duration](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/Duration.html)
- Java [Period](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/Period.html)
- Ruby [Date](https://docs.ruby-lang.org/en/master/Date.html) - represents a date with no time
- Ruby [Time](https://docs.ruby-lang.org/en/master/Time.html) - represents a specific instant with a date and time
- Ruby [DateTime](https://docs.ruby-lang.org/en/master/DateTime.html) - represents a specific instant with a date and time
@ -966,7 +972,7 @@ Several options are available for time related code, including but not limited t
#### Durations
Ruby [integers](https://docs.ruby-lang.org/en/master/Integer.html) and [floats](https://docs.ruby-lang.org/en/master/Float.html) are extended with several methods to support durations.
These methods create a new [Duration](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/Duration.html) or [Period](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/Period.html) object that is used by the [every](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#every-instance_method) trigger, [delay](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#delay-instance_method) block, the for option of [changed](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#changed-instance_method) triggers, and [timers](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Timer.html).
These methods create a new [Duration](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/Duration.html) or [Period](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/Period.html) object that is used by the [every](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#every-instance_method) trigger, [delay](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#delay-instance_method) block, the for option of [changed](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#changed-instance_method) triggers, and [timers](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Timer.html).
```ruby
rule "run every 30 seconds" do
@ -1098,10 +1104,10 @@ java.time.Instant.of_epoch_second(1669684403).at_zone(ZoneId.system_default)
Ranges of date time objects work as expected.
Make sure to use `#cover?` instead of `#include?` to do a simple comparison, instead of generating an array and searching it linearly.
Ranges of non-absolute, "circular" types ([LocalTime](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/LocalTime.html), [Month](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/Month.html), [MonthDay](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/MonthDay.html)) are smart enough to automatically handle boundary issues.
Coarse types (like [LocalDate](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/LocalDate.html), [Month](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/Month.html), [MonthDay](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/MonthDay.html)) will also work correctly when checking against a more specific type.
To easily parse strings into date-time ranges, use the [OpenHAB::DSL.between](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL.html#between-class_method) helper.
[Duration](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/Duration.html), [ZonedDateTime](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/ZonedDateTime.html), [LocalTime](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/LocalTime.html), [LocalDate](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/LocalDate.html), [MonthDay](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/MonthDay.html), [Month](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Java/Month.html), [Time](https://openhab.github.io/openhab-jruby/5.0/Time.html), [Date](https://openhab.github.io/openhab-jruby/5.0/Date.html), and [DateTime](https://openhab.github.io/openhab-jruby/5.0/DateTime.html) classes include [between?](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Between.html#between%3F-instance_method) method that accepts a range of string or any of the date/time objects.
Ranges of non-absolute, "circular" types ([LocalTime](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/LocalTime.html), [Month](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/Month.html), [MonthDay](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/MonthDay.html)) are smart enough to automatically handle boundary issues.
Coarse types (like [LocalDate](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/LocalDate.html), [Month](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/Month.html), [MonthDay](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/MonthDay.html)) will also work correctly when checking against a more specific type.
To easily parse strings into date-time ranges, use the [OpenHAB::DSL.between](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL.html#between-class_method) helper.
[Duration](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/Duration.html), [ZonedDateTime](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/ZonedDateTime.html), [LocalTime](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/LocalTime.html), [LocalDate](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/LocalDate.html), [MonthDay](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/MonthDay.html), [Month](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Java/Month.html), [Time](https://openhab.github.io/openhab-jruby/main/Time.html), [Date](https://openhab.github.io/openhab-jruby/main/Date.html), and [DateTime](https://openhab.github.io/openhab-jruby/main/DateTime.html) classes include [between?](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Between.html#between%3F-instance_method) method that accepts a range of string or any of the date/time objects.
```ruby
between("10:00".."14:00").cover?(Time.now)
@ -1134,7 +1140,7 @@ Time.now.between?("5am".."11pm")
### Ephemeris
[Helper methods](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/CoreExt/Ephemeris.html) to easily access [openHAB's Ephemeris action](https://www.openhab.org/docs/configuration/actions.html#ephemeris) are provided on all date-like objects:
[Helper methods](https://openhab.github.io/openhab-jruby/main/OpenHAB/CoreExt/Ephemeris.html) to easily access [openHAB's Ephemeris action](https://www.openhab.org/docs/configuration/actions.html#ephemeris) are provided on all date-like objects:
```ruby
Time.now.holiday? # => false
@ -1148,8 +1154,8 @@ Date.today.in_dayset?(:school) # => false
### Rules, Scripts, and Scenes
[Rules](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Rules/Rule.html), Scenes and Scripts can be accessed using the
[rules](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Rules/Registry.html) object. For example, to execute/trigger a rule:
[Rules](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Rules/Rule.html), Scenes and Scripts can be accessed using the
[rules](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Rules/Registry.html) object. For example, to execute/trigger a rule:
```ruby
rules[rule_uid].trigger
@ -1157,18 +1163,18 @@ rules[rule_uid].trigger
Scenes are rules with a `Scene` tag, and Scripts are rules with a `Script` tag. They can be found
using their uid just like normal rules, i.e. `rules[uid]`. For convenience, a list of all Scenes are
available through the enumerable [rules.scenes](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Rules/Registry.html#scenes-instance_method),
and a list of all Scripts through [rules.scripts](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/Rules/Registry.html#scripts-instance_method).
available through the enumerable [rules.scenes](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Rules/Registry.html#scenes-instance_method),
and a list of all Scripts through [rules.scripts](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/Rules/Registry.html#scripts-instance_method).
Example: All scenes tagged `sunrise` will be triggered at sunrise, and all scenes tagged
`sunset` will be triggered at sunset. Note: these use the [Terse Rule](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/Terse.html) syntax.
`sunset` will be triggered at sunset. Note: these use the [Terse Rule](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/Terse.html) syntax.
```ruby
channel("astro:sun:home:rise#event") { rules.scenes.tagged("sunrise").each(&:trigger) }
channel("astro:sun:home:set#event") { rules.scenes.tagged("sunset").each(&:trigger) }
```
Or it can be written as one rule with the help of [trigger attachments](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#Triggers-group).
Or it can be written as one rule with the help of [trigger attachments](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#Triggers-group).
```ruby
rule "Activate scenes at sunset/sunrise" do
@ -1271,11 +1277,10 @@ This is not necessary in openHAB 4.0+.
#### File Based Transformations
Once the addon is installed, you can create a Ruby file in the `$OPENHAB_CONF/transform` directory, with the extension `.script`.
It's important that the extension is `.script` so that the core `SCRIPT` transform service will recognize it.
When referencing the file, you need to specify the `SCRIPT` transform, with `rb` as the script type: `SCRIPT(rb:mytransform.script):%s`.
Once the addon is installed, you can create a Ruby file in the `$OPENHAB_CONF/transform` directory, with the extension `.rb`.
When referencing the file, you need to specify the `RB` transform: `RB(mytransform.rb):%s`.
You can also specify additional variables to be set in the script using a URI-like query syntax: `SCRIPT(rb:mytransform.script?a=1&b=c):%s`
You can also specify additional variables to be set in the script using a URI-like query syntax: `RB(mytransform.rb?a=1&b=c):%s`
in order to share a single script with slightly different parameters for different items.
##### Example: Display the wind direction in degrees and cardinal direction
@ -1283,10 +1288,10 @@ in order to share a single script with slightly different parameters for differe
`weather.items`
```Xtend
Number:Angle Exterior_WindDirection "Wind Direction [SCRIPT(rb:compass.script):%s]" <wind>
Number:Angle Exterior_WindDirection "Wind Direction [RB(compass.rb):%s]" <wind>
```
`compass.script`
`compass.rb`
```ruby
DIRECTIONS = %w[N NE E SE S SW W NW N].freeze
@ -1304,11 +1309,11 @@ Given a state of `82 °`, this will produce a formatted state of `E (82°)`.
##### Example: Display the number of lights that are on/off within a group
```Xtend
Group gIndoorLights "Indoor Lights [SCRIPT(rb:group_count.script?group=gIndoorLights):%s]"
Group gOutdoorLights "Outdoor Lights [SCRIPT(rb:group_count.script?group=gOutdoorLights):%s]"
Group gIndoorLights "Indoor Lights [RB(group_count.rb?group=gIndoorLights):%s]"
Group gOutdoorLights "Outdoor Lights [RB(group_count.rb?group=gOutdoorLights):%s]"
```
`group_count.script`
`group_count.rb`
```ruby
items[group].all_members.then { |all| "#{all.select(&:on?).size}/#{all.size}" }
@ -1321,7 +1326,7 @@ When 3 lights out of 10 lights are on, this will produce a formatted state of `3
Inline transformations are supported too. For example, to display the temperature in both °C and °F:
```Xtend
Number:Temperature Outside_Temperature "Outside Temperature [SCRIPT(rb:| input.to_f.|('°C').then { |t| %(#{t.format('%d °C')} / #{t.to_unit('°F').format('%d °F')}) } ):%s]"
Number:Temperature Outside_Temperature "Outside Temperature [RB(| input.to_f.|('°C').then { |t| %(#{t.format('%d °C')} / #{t.to_unit('°F').format('%d °F')}) } ):%s]"
```
When the item contains `0 °C`, this will produce a formatted state of `0 °C / 32 °F`.
@ -1329,13 +1334,13 @@ When the item contains `0 °C`, this will produce a formatted state of `0 °C /
### Profile
You can create an openHAB profile in JRuby that can be applied to item channel links.
For more details, see [#profile](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL.html#profile-class_method).
For more details, see [#profile](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL.html#profile-class_method).
## File Based Rules
### Basic Rule Structure
See [OpenHAB::DSL::Rules::Builder](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/Builder.html) for full details.
See [OpenHAB::DSL::Rules::Builder](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/Builder.html) for full details.
```ruby
rule "name" do
@ -1365,7 +1370,7 @@ rule "Log when Fronius Inverter goes offline" do
end
```
See [#changed](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#changed-instance_method)
See [#changed](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#changed-instance_method)
##### Detecting Change Duration
@ -1390,7 +1395,7 @@ rule "Calculate" do
end
```
See [#updated](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#updated-instance_method)
See [#updated](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#updated-instance_method)
#### Item Received a Command
@ -1404,7 +1409,7 @@ rule "Received a command" do
end
```
See [#received_command](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#received_command-instance_method)
See [#received_command](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#received_command-instance_method)
#### Member-of-Group Trigger
@ -1428,7 +1433,7 @@ rule "initialize things" do
end
```
See [#on_load](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#on_load-instance_method)
See [#on_load](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#on_load-instance_method)
#### openHAB System Started
@ -1439,7 +1444,7 @@ rule "System startup rule" do
end
```
See [#on_start](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#on_start-instance_method)
See [#on_start](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#on_start-instance_method)
#### Cron Trigger
@ -1461,7 +1466,7 @@ rule "cron rule" do
end
```
See [#cron](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#cron-instance_method)
See [#cron](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#cron-instance_method)
##### `every` Trigger
@ -1488,12 +1493,12 @@ rule "Anniversary Reminder" do
end
```
See [#every](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#every-instance_method)
See [#every](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#every-instance_method)
#### Other Triggers
There are more triggers supported by this library.
See the [full list of supported triggers](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#Triggers-group).
See the [full list of supported triggers](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#Triggers-group).
#### Combining Multiple Triggers
@ -1544,7 +1549,7 @@ rule "doorbell" do
end
```
See [Rule Guards](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#Guards-group)
See [Rule Guards](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#Guards-group)
### Rule Executions
@ -1595,7 +1600,7 @@ rule "Check for offline things 15 minutes after openHAB had started" do
end
```
See [Execution Blocks](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/BuilderDSL.html#Execution-Blocks-group)
See [Execution Blocks](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/BuilderDSL.html#Execution-Blocks-group)
### Terse Rules
@ -1605,7 +1610,7 @@ A rule with a trigger and an execution block can be created with just one line.
received_command(My_Switch, to: ON) { My_Light.on }
```
See [Terse Rules](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/DSL/Rules/Terse.html) for full details.
See [Terse Rules](https://openhab.github.io/openhab-jruby/main/OpenHAB/DSL/Rules/Terse.html) for full details.
### Early Exit From a Rule
@ -1676,7 +1681,7 @@ end
### Hooks
File based scripts can also register [hooks](https://openhab.github.io/openhab-jruby/5.0/OpenHAB/Core/ScriptHandling.html) that will be called when the script has completed loading (`script_loaded`) and when it gets unloaded (`script_unloaded`).
File based scripts can also register [hooks](https://openhab.github.io/openhab-jruby/main/OpenHAB/Core/ScriptHandling.html) that will be called when the script has completed loading (`script_loaded`) and when it gets unloaded (`script_unloaded`).
```ruby
x = 1

View File

@ -50,6 +50,10 @@ Step 3. Follow the On-Screen instructions in the Control Panel on adding or remo
 press the Program Button on the Relay once or the ON/OFF toggle on the switch 3 times
### General Usage Information
## Channels
The following table summarises the channels available for the ZWN-RSM1-PLUS -:
@ -117,7 +121,8 @@ Association group 1 supports 1 node.
Switch Binary Report
Association group 2 supports 3 nodes.
Association group 2 supports 5 nodes.
## Technical Information

View File

@ -0,0 +1,143 @@
---
layout: documentation
title: 14311 / ZW4201 - ZWave
---
{% include base.html %}
# 14311 / ZW4201 Plug-in Outdoor Smart Switch, 500S
This describes the Z-Wave device *14311 / ZW4201*, manufactured by *Jasco Products* with the thing type UID of ```ge_zw4201_00_000```.
The device is in the category of *Power Outlet*, defining Small devices to be plugged into a power socket in a wall which stick there.
![14311 / ZW4201 product image](https://opensmarthouse.org/zwavedatabase/643/image/)
The 14311 / ZW4201 supports routing. This allows the device to communicate using other routing enabled devices as intermediate routers. This device is also able to participate in the routing of data between other devices in the mesh network.
## Overview
Maximum load for the Z-Wave controlled outlet: 600W Incandescent; 1800W (15A) Resistive or 12 HP Motor
* One Z-Wave controlled grounded outlet for lighting & small appliances
* Remote ON/OFF control via the Z-Wave controller
* Manual ON/OFF control with the manual/program button
* Grounded 3-wire power connection for safety
* Weather and impact resistant housing. suitable for outdoors in a wet or damp conditions
* Integrated outlet cover keeps dirt and debris out when the smart switch is not in use
### Inclusion Information
1. Follow the instructions for your Z-Wave certified controller to add the smart switch to the Z-Wave network.
2. Once the controller is ready to add your outdoor smart switch, single press and release the manual/program button on the smart switch to add it in the network.
3. Please reference the controller/gateways manual for instructions.
Now you have complete control to turn your lamp ON/OFF according to groups, scenes, schedules and interactive automations programmed by your controller. If your Z-Wave certified controller features Remote Access, you can now control your lighting from your mobile devices.
### Exclusion Information
1. Follow the instructions for your Z-Wave certi ed controller to remove a device from the Z-Wave network.
2. Once the controller is ready to remove your device, press and release the manual/program button on the smart switch to remove it from the network.
To return your switch to factory defaults
1. If plugged in, unplug the Switch from the receptacle. 2. Press and hold the button for at least 3 seconds while you plug the switch into a receptacle.
Note: This should only be used in the event your networks primary controller is missing or otherwise inoperable.
### General Usage Information
This unit is suitable for outdoor use in damp locations. Do not expose to rain or immerse in water. Install at least 3 feet above ground level with the receptacle pointed down. When used outdoors you should plug the unit into a GFCI receptacle with a receptacle cover rated for outdoor use.
The manual/program button on the outdoor switch allows the user to:
Turn the connected lamp ON or OFF. If the outdoor switch is OFF, press and release the button once to turn it ON and vice versa to turn OFF.
A. Z-Wave controlled outlets
* This outlet can remotely turn the connected light or appliance ON/OFF.
B. Manual/Program button
* Single press — turn ON/OFF
* Single press — add or remove in Z-Wave network
## Channels
The following table summarises the channels available for the 14311 / ZW4201 -:
| Channel Name | Channel ID | Channel Type | Category | Item Type |
|--------------|------------|--------------|----------|-----------|
| Switch | switch_binary | switch_binary | Switch | Switch |
| Scene Number | scene_number | scene_number | | Number |
### Switch
Switch the power on and off.
The ```switch_binary``` channel is of type ```switch_binary``` and supports the ```Switch``` item and is in the ```Switch``` category.
### Scene Number
Triggers when a scene button is pressed.
The ```scene_number``` channel is of type ```scene_number``` and supports the ```Number``` item.
## Device Configuration
The device has no configuration parameters defined.
## Association Groups
Association groups allow the device to send unsolicited reports to the controller, or other devices in the network. Using association groups can allow you to eliminate polling, providing instant feedback of a device state change without unnecessary network traffic.
The 14311 / ZW4201 supports 3 association groups.
### Group 1: Lifeline
The Lifeline association group reports device status to a hub and is not designed to control other devices directly. When using the Lineline group with a hub, in most cases, only the lifeline group will need to be configured and normally the hub will perform this automatically during the device initialisation.
Association Group 1 supports Lifeline, Binary Switch Report
Association group 1 supports 5 nodes.
### Group 2: Group 2
Association Group 2 supports Basic Set and is controlled by pressing the On or Off button with the local load
Association group 2 supports 5 nodes.
### Group 3: Group 3
Association Group 3 supports Basic Set and is controlled by double pressing the On or Off button
Association group 3 supports 5 nodes.
## Technical Information
### Endpoints
#### Endpoint 0
| Command Class | Comment |
|---------------|---------|
| COMMAND_CLASS_NO_OPERATION_V1| |
| COMMAND_CLASS_BASIC_V1| |
| COMMAND_CLASS_SWITCH_BINARY_V1| Linked to BASIC|
| COMMAND_CLASS_SWITCH_ALL_V1| |
| COMMAND_CLASS_SCENE_ACTIVATION_V1| |
| COMMAND_CLASS_SCENE_ACTUATOR_CONF_V1| |
| COMMAND_CLASS_CRC_16_ENCAP_V1| |
| COMMAND_CLASS_ASSOCIATION_GRP_INFO_V1| |
| COMMAND_CLASS_DEVICE_RESET_LOCALLY_V1| |
| COMMAND_CLASS_ZWAVEPLUS_INFO_V1| |
| COMMAND_CLASS_MANUFACTURER_SPECIFIC_V1| |
| COMMAND_CLASS_POWERLEVEL_V1| |
| COMMAND_CLASS_FIRMWARE_UPDATE_MD_V1| |
| COMMAND_CLASS_ASSOCIATION_V2| |
| COMMAND_CLASS_VERSION_V2| |
### Documentation Links
* [Manual](https://opensmarthouse.org/zwavedatabase/643/reference/14284-EnFrSp-QSG-v1.pdf)
---
Did you spot an error in the above definition or want to improve the content?
You can [contribute to the database here](https://opensmarthouse.org/zwavedatabase/643).

File diff suppressed because it is too large Load Diff

View File

@ -103,7 +103,7 @@ This channel provides the battery level as a percentage and also reflects the lo
## Device Configuration
The following table provides a summary of the 3 configuration parameters available in the ZP3102.
The following table provides a summary of the 4 configuration parameters available in the ZP3102.
Detailed information on each parameter can be found in the sections below.
| Param | Name | Description |
@ -111,6 +111,7 @@ Detailed information on each parameter can be found in the sections below.
| 1 | On time in minutes | Delay before sending OFF |
| 2 | Celsius / Fahrenheit | 0 = Celsius, 1 = Fahrenheit |
| 3 | Infrared sensor sensitivity adjustment | 1 is most sensitive, 7 is least |
| 4 | User Defined Celsius Adjustment | -10 ~ -1, 0 ~ 10 (signed decimal in Celsius) (0xF6~0xFF, 0x0~0xA, default: 0x00) |
| | Wakeup Interval | Sets the interval at which the device will accept commands from the controller |
| | Wakeup Node | Sets the node ID of the device to receive the wakeup notifications |
@ -152,6 +153,17 @@ The manufacturer defined default value is ```4```.
This parameter has the configuration ID ```config_3_1``` and is of type ```INTEGER```.
### Parameter 4: User Defined Celsius Adjustment
-10 ~ -1, 0 ~ 10 (signed decimal in Celsius) (0xF6~0xFF, 0x0~0xA, default: 0x00)
Values in the range 0 to 0 may be set.
The manufacturer defined default value is ```0```.
This parameter has the configuration ID ```config_4_1``` and is of type ```INTEGER```.
### Wakeup Interval
The wakeup interval sets the period at which the device will listen for messages from the controller. This is required for battery devices that sleep most of the time in order to conserve battery life. The device will wake up at this interval and send a message to the controller to tell it that it can accept messages - after a few seconds, it will go back to sleep if there is no further communications.

View File

@ -29,11 +29,28 @@ Number CurrentSpotPrice "Current Spot Price incl. VAT [VAT(12.5):%s]" <price>
Add Danish VAT to price:
```java
:::: tabs
::: tab DSL
```javascript
var Number price = 499
logInfo("Price", "Price incl. VAT: " + transform("VAT", "DK", price.toString))
```
:::
::: tab JavaScript
```javascript
var price = 499;
console.log("Price incl. VAT: " + actions.Transformation.transform("VAT", "DK", price.toString()));
```
:::
::::
## Usage as a Profile
The functionality of this `TransformationService` can also be used in a `Profile` on an `ItemChannelLink`.

View File

@ -8,7 +8,7 @@
<thing-type id="enerwave_zwnrsm1plus_00_000" listed="false">
<label>ZWN-RSM1-PLUS Smart Relay Switch Module</label>
<description><![CDATA[
Smart Relay Switch Module<br /> <h1>Overview</h1><p>Transform any home into a connected home with the Enerwave Z-Wave Plus Smart Single Relay Wireless Lighting Control Module. The lighting control enables wireless control of on/off functions for standard table and floor lamps, and is compatible with incandescent, LED, Xenon, Halogen, fluorescent and compact fluorescent bulbs. The Z-Wave Plus Module provides ultimate flexibility for your home lighting by creating custom scenes and scheduling timed events when youre either home or away. Compared to Z-Wave Classic models, the Enerwave Z-Wave Plus Smart Meter Module offers 50% more wireless range and energy efficiency a 250% faster processor and 400% more memory</p> <p>Take charge of your homes appliances power outlet by installed directly behind your wall sockets.  The Z-Wave Plus Smart Relay Module offers all the power of intelligent automation and remote control.  Discrete and smart, the Smart Module Switch work invisibly behind your existing switches without the need to replace them.</p> <p>Easily controlled by your mobile device or computer using any Z-Wave certified gateway, Take control of your home lighting with Enerwave Z-Wave Plus Smart Single Relay Wireless Lighting Controls! Z-Wave is the worlds largest ecosystem of interoperable smart home products. Z-Wave lighting controls provide an easy-to-install and affordable system to control lighting and small appliances in your home. Add an Enerwave Z-Wave lighting controls to a Z-Wave certified gateway to access and control your home from anywhere in the world using your smartphone, tablet or computer as a home automation command center.</p> <p>Never worry if you accidentally left the lights on because you can turn them off remotely or program your lights to go on/off at specific times. Create customized lighting scenes for any occasion such as a “go to sleep” scene or a “movie night” scene. Give the illusion that someone is home by programming the lights to turn on/off while you are away—perfect for deterring crime and adding additional security!</p> <br /> <h2>Inclusion Information</h2><p>The process of "Inclusion/ Exclusion" is to Add or Remove the device from the Hub. All Z-Wave devices must be "Included" on the Controller (Hub) before it can be controlled from a smart device. The Hub should be brought physically closer to the device just for the "Inclusion" process (recommended within 10ft). When finished, the Hub and device can be moved back to final installation location. Download the App or log onto the website associated with the Hub you are using and follow their Inclusion/ Exclusion instructions as each Hub's programming and features are different.</p> <ul><li>During the Inclusion/ Exclusion process, the Program Button on the relay or the ON/OFF toggle on the switch can be used for including/ excluding the device.</li> <li>When using the ON/OFF toggle, the toggle must be toggled ON and OFF 3 times.</li> <li>It is best to perform an Exclusion of the device prior to performing an Inclusion.</li> </ul><p>Step 1. From the Control Panel, go the the device Exclusion page.</p> <ul><li>Select "Exclude Device".</li> <li>When prompted, press the Program Button on the Relay once or the ON/OFF toggle on the switch 3 times.</li> </ul><p>Step 2. Go to the "Add Device" page.</p> <ul><li>Select "Include Device".</li> <li>When prompted, press the Program Button on the Relay once or the ON/OFF toggle on the switch 3 times.</li> <li>The primary controller should indicate that the action was successful. If the controller indicates the action was unsuccessful, please repeat from Step 1. Once the relay is part of the network, the same basic procedure is used to add the relay to groups &amp; scenes or change advanced functions. Refer to the Hubs instructions for details.</li> </ul><p>Step 3. Follow the On-Screen instructions in the Control Panel on adding or removing rooms, scenes, other devices, and other functions and features.</p> <br /> <h2>Exclusion Information</h2><p> press the Program Button on the Relay once or the ON/OFF toggle on the switch 3 times</p>
Smart Relay Switch Module<br /> <h1>Overview</h1><p>Transform any home into a connected home with the Enerwave Z-Wave Plus Smart Single Relay Wireless Lighting Control Module. The lighting control enables wireless control of on/off functions for standard table and floor lamps, and is compatible with incandescent, LED, Xenon, Halogen, fluorescent and compact fluorescent bulbs. The Z-Wave Plus Module provides ultimate flexibility for your home lighting by creating custom scenes and scheduling timed events when youre either home or away. Compared to Z-Wave Classic models, the Enerwave Z-Wave Plus Smart Meter Module offers 50% more wireless range and energy efficiency a 250% faster processor and 400% more memory</p> <p>Take charge of your homes appliances power outlet by installed directly behind your wall sockets.  The Z-Wave Plus Smart Relay Module offers all the power of intelligent automation and remote control.  Discrete and smart, the Smart Module Switch work invisibly behind your existing switches without the need to replace them.</p> <p>Easily controlled by your mobile device or computer using any Z-Wave certified gateway, Take control of your home lighting with Enerwave Z-Wave Plus Smart Single Relay Wireless Lighting Controls! Z-Wave is the worlds largest ecosystem of interoperable smart home products. Z-Wave lighting controls provide an easy-to-install and affordable system to control lighting and small appliances in your home. Add an Enerwave Z-Wave lighting controls to a Z-Wave certified gateway to access and control your home from anywhere in the world using your smartphone, tablet or computer as a home automation command center.</p> <p>Never worry if you accidentally left the lights on because you can turn them off remotely or program your lights to go on/off at specific times. Create customized lighting scenes for any occasion such as a “go to sleep” scene or a “movie night” scene. Give the illusion that someone is home by programming the lights to turn on/off while you are away—perfect for deterring crime and adding additional security!</p> <br /> <h2>Inclusion Information</h2><p>The process of "Inclusion/ Exclusion" is to Add or Remove the device from the Hub. All Z-Wave devices must be "Included" on the Controller (Hub) before it can be controlled from a smart device. The Hub should be brought physically closer to the device just for the "Inclusion" process (recommended within 10ft). When finished, the Hub and device can be moved back to final installation location. Download the App or log onto the website associated with the Hub you are using and follow their Inclusion/ Exclusion instructions as each Hub's programming and features are different.</p> <ul><li>During the Inclusion/ Exclusion process, the Program Button on the relay or the ON/OFF toggle on the switch can be used for including/ excluding the device.</li> <li>When using the ON/OFF toggle, the toggle must be toggled ON and OFF 3 times.</li> <li>It is best to perform an Exclusion of the device prior to performing an Inclusion.</li> </ul><p>Step 1. From the Control Panel, go the the device Exclusion page.</p> <ul><li>Select "Exclude Device".</li> <li>When prompted, press the Program Button on the Relay once or the ON/OFF toggle on the switch 3 times.</li> </ul><p>Step 2. Go to the "Add Device" page.</p> <ul><li>Select "Include Device".</li> <li>When prompted, press the Program Button on the Relay once or the ON/OFF toggle on the switch 3 times.</li> <li>The primary controller should indicate that the action was successful. If the controller indicates the action was unsuccessful, please repeat from Step 1. Once the relay is part of the network, the same basic procedure is used to add the relay to groups &amp; scenes or change advanced functions. Refer to the Hubs instructions for details.</li> </ul><p>Step 3. Follow the On-Screen instructions in the Control Panel on adding or removing rooms, scenes, other devices, and other functions and features.</p> <br /> <h2>Exclusion Information</h2><p> press the Program Button on the Relay once or the ON/OFF toggle on the switch 3 times</p> <br /> <h2>Wakeup Information</h2><p><br /></p>
]]></description>
<category>WallSwitch</category>
@ -27,7 +27,7 @@ Smart Relay Switch Module<br /> <h1>Overview</h1><p>Transform any home into a co
<property name="vendor">Wenzhou MTLC Electric Appliances Co.,Ltd.</property>
<property name="modelId">ZWN-RSM1-PLUS</property>
<property name="manufacturerId">011A</property>
<property name="manufacturerRef">0101:5605</property>
<property name="manufacturerRef">0101:5605,0121:0605</property>
<property name="dbReference">575</property>
<property name="defaultAssociations">1</property>
</properties>
@ -65,8 +65,10 @@ Unsolicited Report Configuration<br /> <h1>Overview</h1><p>ZWN-RSM1-PLUS can sen
<parameter name="group_2" type="text" groupName="association" multiple="true">
<label>2: StatusReport_ EP</label>
<description>Switch Binary Report</description>
<multipleLimit>3</multipleLimit>
<description><![CDATA[
Switch Binary Report<br /> <h1>Overview</h1><p><br /></p>
]]></description>
<multipleLimit>5</multipleLimit>
</parameter>
<!-- STATIC DEFINITIONS -->

View File

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="zwave"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0
https://openhab.org/schemas/thing-description/v1.0.0">
<thing-type id="ge_zw4201_00_000" listed="false">
<label>14311 / ZW4201 Plug-in Outdoor Smart Switch, 500S</label>
<description><![CDATA[
Plug-in Outdoor Smart Switch, 500S<br /> <h1>Overview</h1><p>Maximum load for the Z-Wave controlled outlet: 600W Incandescent; 1800W (15A) Resistive or 12 HP Motor</p> <ul><li>One Z-Wave controlled grounded outlet for lighting &amp; small appliances</li> <li>Remote ON/OFF control via the Z-Wave controller</li> <li>Manual ON/OFF control with the manual/program button</li> <li>Grounded 3-wire power connection for safety</li> <li>Weather and impact resistant housing. suitable for outdoors in a wet or damp conditions</li> <li>Integrated outlet cover keeps dirt and debris out when the smart switch is not in use</li> </ul> <br /> <h2>Inclusion Information</h2><ol><li>Follow the instructions for your Z-Wave certified controller to add the smart switch to the Z-Wave network.</li> <li>Once the controller is ready to add your outdoor smart switch, single press and release the manual/program button on the smart switch to add it in the network.</li> <li>Please reference the controller/gateways manual for instructions.<br />Now you have complete control to turn your lamp ON/OFF according to groups, scenes, schedules and interactive automations programmed by your controller. If your Z-Wave certified controller features Remote Access, you can now control your lighting from your mobile devices.</li> </ol> <br /> <h2>Exclusion Information</h2><ol><li>Follow the instructions for your Z-Wave certi ed controller to remove a device from the Z-Wave network.</li> <li>Once the controller is ready to remove your device, press and release the manual/program button on the smart switch to remove it from the network.</li> </ol><p>To return your switch to factory defaults</p> <ol><li>If plugged in, unplug the Switch from the receptacle. 2. Press and hold the button for at least 3 seconds while you plug the switch into a receptacle.</li> </ol><p>Note: This should only be used in the event your networks primary controller is missing or otherwise inoperable.</p> <br /> <h2>Wakeup Information</h2><p><br /></p>
]]></description>
<category>PowerOutlet</category>
<!-- CHANNEL DEFINITIONS -->
<channels>
<channel id="switch_binary" typeId="switch_binary">
<label>Switch</label>
<properties>
<property name="binding:*:OnOffType">COMMAND_CLASS_SWITCH_BINARY,COMMAND_CLASS_BASIC</property>
</properties>
</channel>
<channel id="scene_number" typeId="scene_number">
<label>Scene Number</label>
<properties>
<property name="binding:*:DecimalType">COMMAND_CLASS_SCENE_ACTIVATION</property>
</properties>
</channel>
</channels>
<!-- DEVICE PROPERTY DEFINITIONS -->
<properties>
<property name="vendor">Jasco Products</property>
<property name="modelId">14311 / ZW4201</property>
<property name="manufacturerId">0063</property>
<property name="manufacturerRef">4F50:3033</property>
<property name="dbReference">643</property>
<property name="defaultAssociations">1</property>
</properties>
<!-- CONFIGURATION DESCRIPTIONS -->
<config-description>
<!-- GROUP DEFINITIONS -->
<parameter-group name="association">
<context>link</context>
<label>Association Groups</label>
</parameter-group>
<!-- ASSOCIATION DEFINITIONS -->
<parameter name="group_1" type="text" groupName="association" multiple="true">
<label>1: Lifeline</label>
<description>Association Group 1 supports Lifeline, Binary Switch Report</description>
<multipleLimit>5</multipleLimit>
</parameter>
<parameter name="group_2" type="text" groupName="association" multiple="true">
<label>2: Group 2</label>
<description>Association Group 2 supports Basic Set and is controlled by pressing the On or Off button with the local load</description>
<multipleLimit>5</multipleLimit>
</parameter>
<parameter name="group_3" type="text" groupName="association" multiple="true">
<label>3: Group 3</label>
<description>Association Group 3 supports Basic Set and is controlled by double pressing the On or Off button</description>
<multipleLimit>5</multipleLimit>
</parameter>
<!-- STATIC DEFINITIONS -->
<parameter name="node_id" type="integer" min="1" max="232" readOnly="true" required="true">
<label>Node ID</label>
<advanced>true</advanced>
</parameter>
</config-description>
</thing-type>
</thing:thing-descriptions>

View File

@ -0,0 +1,664 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="zwave"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0
https://openhab.org/schemas/thing-description/v1.0.0">
<thing-type id="inovelli_vzw31sn_00_000" listed="false">
<label>VZW31-SN Red Series 2-1 Switch</label>
<description><![CDATA[
Red Series 2-1 Switch<br /> <h1>Overview</h1><p>Introducing Z-Wave's first certified 800 Series Light Switch powered by Inovelli. Featuring Z-Wave Long Range which boasts open air signal of up to 1 mile, government level encryption and security, multi-tap scene control, LED notifications, power monitoring and over 60 parameters, this smart switch has it all. Best of all, it was developed by 1,000's of community members, which makes this truly a switch for the smart home enthusiast.<br /></p> <br /> <h2>Inclusion Information</h2><p>When you are ready to include/pair your switch, please start the inclusion process on your Z-Wave enabled hub. If you are unsure how to do that, please refer to the specific hub instructions here:</p><p>Once your hub has started the inclusion process, quickly tap three (3) times on the configuration/favorites button and the LED Bar will start to pulse blue.</p><p>If your switch includes successfully, the LED Bar will blink Green temporarily and then go back to Blue. If the switch does not include successfully, the LED Bar will blink Red temporarily and then go back to Blue.</p><p><b>Note: </b>If you run into issues where your switch is not including, you may have to try an exclusion process. To exclude your switch, start the exclusion process on your hub and then tap the config/favorites button 3x rapidly. If you continue to have issues after an exclusion, you may have to move the switch closer to the hub.</p> <br /> <h2>Exclusion Information</h2><p>Exclusion will reset your device as well and can be done directly from the hub. This is helpful if youre running into issues with inclusion. To exclude a device, start the exclusion process on your hub and press the Configuration / Favorites Button 3x rapidly. The LED Bar will start pulsing blue and if successful, it will flash green. If unsuccessful it will flash red.<br /></p> <br /> <h2>Wakeup Information</h2><p><br /></p>
]]></description>
<category>WallSwitch</category>
<!-- CHANNEL DEFINITIONS -->
<channels>
<channel id="switch_dimmer" typeId="switch_dimmer">
<label>Dimmer</label>
<properties>
<property name="binding:*:PercentType">COMMAND_CLASS_SWITCH_MULTILEVEL</property>
<property name="binding:Command:OnOffType">COMMAND_CLASS_SWITCH_MULTILEVEL</property>
</properties>
</channel>
<channel id="meter_kwh" typeId="meter_kwh">
<label>Electric meter (kWh)</label>
<properties>
<property name="binding:*:DecimalType">COMMAND_CLASS_METER;type=E_KWh</property>
</properties>
</channel>
<channel id="meter_watts" typeId="meter_watts">
<label>Electric meter (watts)</label>
<properties>
<property name="binding:*:DecimalType">COMMAND_CLASS_METER;type=E_W</property>
</properties>
</channel>
<channel id="scene_number" typeId="scene_number">
<label>Scene Number</label>
<properties>
<property name="binding:*:DecimalType">COMMAND_CLASS_CENTRAL_SCENE</property>
</properties>
</channel>
</channels>
<!-- DEVICE PROPERTY DEFINITIONS -->
<properties>
<property name="vendor">Inovelli</property>
<property name="modelId">VZW31-SN</property>
<property name="manufacturerId">031E</property>
<property name="manufacturerRef">0015:0001</property>
<property name="dbReference">1573</property>
</properties>
<!-- CONFIGURATION DESCRIPTIONS -->
<config-description>
<!-- GROUP DEFINITIONS -->
<parameter-group name="configuration">
<context>setup</context>
<label>Configuration Parameters</label>
</parameter-group>
<parameter-group name="association">
<context>link</context>
<label>Association Groups</label>
</parameter-group>
<!-- PARAMETER DEFINITIONS -->
<parameter name="config_1_1" type="integer" groupName="configuration">
<label>1: Dimming Speed (↑) - Remote</label>
<description><![CDATA[
How fast or slow the light turns on when you change the dim level remotely<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>How fast or slow the light turns on when you change the dim level remotely (ie: dimming from 10-20%, 60-80%, etc)</p><p>More Details<br /></p><p>0 = Instant On<br /></p><p>5 = Fast (500ms)<br /></p><p>126 = Slow (12.6s)</p><p>IF USING A DUMB SWITCH: This parameter will not work when pressing the dumb switch manually.</p><p><b>NOTE: </b>Third party code may need to be implemented (device handler, driver, etc) for this to work properly. Some hubs may not support this feature.</p>
]]></description>
<default>25</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_2_1" type="integer" groupName="configuration">
<label>2: Dimming Speed (↑) - Local</label>
<description><![CDATA[
How fast or slow the light the light turns on when you hold up on the switch<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>How fast or slow the light the light turns on when you hold up on the switch (ie: dimming from 10-20%, 60-80%, etc)</p><p>More Details</p><p>0 = Instant On</p><p>5 = Fast (500ms)</p><p>126 = Slow (12.6s)</p><p>255 = Sync to Parameter 1</p><p>IF USING A DUMB SWITCH: This parameter will not work when pressing the dumb switch manually.</p>
]]></description>
<default>-1</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_3_1" type="integer" groupName="configuration">
<label>3: Ramp Rate (Off → On) - Remote</label>
<description><![CDATA[
How fast or slow the light turns on when you remotely bring the switch from Off to On<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>How fast or slow the light turns on when you remotely bring the switch from Off to On</p><p>More Details</p><p>0 = Instant On</p><p>5 = Fast (500ms)</p><p>126 = Slow (12.6s)</p><p>255 = Sync to Parameter 1</p><p><b>NOTE: </b>Third party code may need to be implemented (device handler, driver, etc) for this to work properly. Some hubs may not support this feature.</p>
]]></description>
<default>-1</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_4_1" type="integer" groupName="configuration">
<label>4: Ramp Rate (Off → On) - Local</label>
<description><![CDATA[
How fast or slow the light turns on when you press the switch up 1x to bring from Off to On<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>How fast or slow the light turns on when you press the switch up 1x to bring from Off to On</p><p>More Details</p><p>0 = Instant On</p><p>5 = Fast (500ms)</p><p>126 = Slow (12.6s)</p><p>255 = Sync to Parameter 3</p>
]]></description>
<default>-1</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_5_1" type="integer" groupName="configuration">
<label>5: Dimming Speed (↓) - Remote</label>
<description><![CDATA[
How fast or slow the light turns off when you change the dim level remotely<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>How fast or slow the light turns off when you change the dim level remotely (ie: dimming from 80-60%, 20-10%, etc)</p><p>More Details</p><p>0 = Instant Off</p><p>5 = Fast (500ms)</p><p>126 = Slow (12.6s)</p><p>127 = Sync to Parameter 1</p><p>IF USING A DUMB SWITCH: This parameter will not work when pressing the dumb switch manually.</p><p><b>NOTE: </b>Third party code may need to be implemented (device handler, driver, etc) for this to work properly. Some hubs may not support this feature.</p>
]]></description>
<default>-1</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_6_1" type="integer" groupName="configuration">
<label>6: Dimming Speed (↓) - Local</label>
<description><![CDATA[
How fast or slow the light the light turns off when you hold down on the switch<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>How fast or slow the light the light turns off when you hold down on the switch (ie: dimming from 80-60%, 20-10%, etc)</p><p>More Details</p><p>0 = Instant Off</p><p>5 = Fast (500ms)</p><p>126 = Slow (12.6s)</p><p>127 = Sync to Parameter 2</p><p>IF USING A DUMB SWITCH: This parameter will not work when pressing the dumb switch manually.</p>
]]></description>
<default>-1</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_7_1" type="integer" groupName="configuration">
<label>7: Ramp Rate (On → Off) - Remote</label>
<description><![CDATA[
How fast or slow the light turns on when you remotely bring the switch from Off to On<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>How fast or slow the light turns on when you remotely bring the switch from Off to On<br /></p><p>More Details<br /></p><p>0 = Instant Off</p><p>5 = Fast (500ms)</p><p>126 = Slow (12.6s)</p><p>255 = Sync to Parameter 3</p><p><b>NOTE:</b> Third party code may need to be implemented (device handler, driver, etc) for this to work properly. Some hubs may not support this feature.</p>
]]></description>
<default>-1</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_8_1" type="integer" groupName="configuration">
<label>8: Ramp Rate (On → Off) - Local</label>
<description><![CDATA[
How fast or slow the light turns on when you press the switch up 1x to bring from Off to On<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>How fast or slow the light turns on when you press the switch up 1x to bring from Off to On</p><p>More Details</p><p>0 = Instant Off</p><p>5 = Fast (500ms)</p><p>126 = Slow (12.6s)</p><p>255 = Sync to Parameter 4</p>
]]></description>
<default>-1</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_9_1" type="integer" groupName="configuration">
<label>9: Minimum Dim Level</label>
<description><![CDATA[
Minimum level the light switch will dim to<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>Minimum level the light switch will dim to</p><p>More Details</p><p>Lower the numeric value = lower the min dim level (1 = ~1%)</p><p>Higher the numeric value = higher the min dim level (54 = 99%)</p><p>Great for fixing flickering bulbs or calibrating the bulb if it shuts off prior to 1%</p>
]]></description>
<default>1</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_10_1" type="integer" groupName="configuration">
<label>10: Maximum Dim Level</label>
<description><![CDATA[
Maximum level the light switch will dim to<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>Maximum level the light switch will dim to</p><p>More Details</p><p>Lower the numeric value = lower the max dim level (2 = ~2%)</p><p>Higher the numeric value = higher the max dim level (99 = 99%)</p><p><b>NOTE:</b> Great for calibrating a bulb when it reaches maximum level before 99%</p>
]]></description>
<default>99</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_11_1" type="integer" groupName="configuration">
<label>11: Invert Switch</label>
<description><![CDATA[
Inverts the switch (Tapping ↓ = On, Tapping ↑ = Off)<br /> <h1>Overview</h1><p>Inverts the switch (Tapping ↓ = On, Tapping ↑ = Off)</p><p>More Details</p><p>0 = Disabled</p><p>1 = Enabled</p>
]]></description>
<default>0</default>
<options>
<option value="0">Disabled</option>
<option value="1">Enabled</option>
</options>
</parameter>
<parameter name="config_12_2" type="integer" groupName="configuration">
<label>12: Auto Off Timer</label>
<description><![CDATA[
Automatically turns the switch off after x amount of seconds<br /> <h1>Overview</h1><p>Automatically turns the switch off after x amount of seconds</p><p>More Details</p><p>0 = Disabled</p><p>1 = 1s</p><p>32767 = 32767s</p>
]]></description>
<default>0</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_13_1" type="integer" groupName="configuration">
<label>13: Default Level - Local</label>
<description><![CDATA[
The default dim level the switch goes to when turned on locally (at the switch)<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>The default dim level the switch goes to when turned on locally (at the switch)</p><p>More Details</p><p>1-99 = Specific level on</p><p>0 = Returns to prior state it was before being turned off</p>
]]></description>
<default>0</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_14_1" type="integer" groupName="configuration">
<label>14: Default Level - Remote</label>
<description><![CDATA[
The default dim level the switch goes to when powered on via a remote command<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>The default dim level the switch goes to when powered on via a remote command</p><p>More Details</p><p>1-99 = Specific level on</p><p>0 = Returns to prior state it was before being turned off</p>
]]></description>
<default>0</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_15_1" type="integer" groupName="configuration">
<label>15: Level After Power Restored</label>
<description><![CDATA[
When power is restored, the switch reverts to either On, Off, or Last Level<br /> <h1>Overview</h1><p>When power is restored, the switch reverts to either On, Off, or Last Level</p><p>More Details</p><p>0 = Off</p><p>1-99 = Specific level on</p><p>100 = Returns to level before power outage</p>
]]></description>
<default>100</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_17_1" type="integer" groupName="configuration">
<label>17: LED Indicator Timeout</label>
<description><![CDATA[
Changes the amount of time (in seconds) the RGB Bar shows the Dim level<br /> <h1>Overview</h1><p>Changes the amount of time (in seconds) the RGB Bar shows the Dim level</p><p>More Details</p><p>0 = Always off</p><p>1 = 1 second after level is adjusted</p><p>10 = 10 seconds after level is adjusted</p><p>11 = Always on</p>
]]></description>
<default>11</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_18_2" type="integer" groupName="configuration">
<label>18: Active Power Reports</label>
<description><![CDATA[
The power level change that will result in a new power report being sent in wattage (W)<br /> <h1>Overview</h1><p>The power level change that will result in a new power report being sent in wattage (W)</p><p>More Details</p><p>0 = Disabled</p><p>1 = 0.1W change</p><p>10 = 1W change</p><p>100 = 10W change</p><p>32767 = 3276.7W</p>
]]></description>
<default>10</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_19_2" type="integer" groupName="configuration">
<label>19: Periodic Power &amp; Energy Reports</label>
<description><![CDATA[
Time period between consecutive power and energy reports being sent (in seconds)<br /> <h1>Overview</h1><p>Time period between consecutive power and energy reports being sent (in seconds)</p><p>More Details</p><p>0 = Disabled</p><p>1 = 1s</p><p>32767 = 32767s</p><p><b>NOTE:</b> Timer resets after every report is sent</p>
]]></description>
<default>3600</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_20_2" type="integer" groupName="configuration">
<label>20: Energy Reports</label>
<description><![CDATA[
The energy level change that will result in a new energy report being sent in kilowatt hours (kWh)<br /> <h1>Overview</h1><p>The energy level change that will result in a new energy report being sent in kilowatt hours (kWh)</p><p>More Details</p><p>0 = Disabled</p><p>1 = 0.01kWh</p><p>10 = 0.1kWh</p><p>100 = 1kWh</p><p>32767 = 327.67kWh</p>
]]></description>
<default>10</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_21_1" type="integer" groupName="configuration">
<label>21: AC Power Type</label>
<description><![CDATA[
Select whether you are wiring your switch with or without a neutral wire<br /> <h1>Overview</h1><p>Select whether you are wiring your switch with or without a neutral wire</p><p>More Details</p><p>0 = No-Neutral</p><p>1 = Neutral</p>
]]></description>
<default>1</default>
<options>
<option value="0">No-Neutral</option>
<option value="1">Neutral</option>
</options>
</parameter>
<parameter name="config_22_1" type="integer" groupName="configuration">
<label>22: Aux Switch Type &amp; Full Sine Mode</label>
<description><![CDATA[
Select the Aux Switch type as well as Full Sine Mode<br /> <h1>Overview</h1><p>Select the Aux Switch type as well as Full Sine Mode</p><p>More Details</p><p>0 = None</p><p>1 = 3-Way Dumb Switch</p><p>2 = 3-Way Aux Switch</p><p>3 = Single Pole Full Sine Wave</p>
]]></description>
<default>0</default>
<options>
<option value="0">None</option>
<option value="1">3-Way Dumb Switch</option>
<option value="2">3-Way Aux Switch</option>
<option value="3">Single Pole Full Sine Wave</option>
</options>
</parameter>
<parameter name="config_25_1" type="integer" groupName="configuration">
<label>25: Higher Output in Non-Neutral</label>
<description><![CDATA[
Ability to increase level in non-neutral mode.<br /> <h1>Overview</h1><p>Ability to increase level in non-neutral mode but may cause problems with high level ficker or aux switch detection. Adjust max level (P10) if you have problems with this enabled.</p><p>More Details</p><p>0 = Disabled</p><p>1 = Enabled</p>
]]></description>
<default>0</default>
<options>
<option value="0">Disabled</option>
<option value="1">Enabled</option>
</options>
</parameter>
<parameter name="config_50_1" type="integer" groupName="configuration">
<label>50: Button Press Delay</label>
<description><![CDATA[
Adjusts the delay between button taps in 100ms increments<br /> <h1>Overview</h1><p>Adjusts the delay between button taps in 100ms increments</p><p>0 = 0ms / No Delay (disables multi-tap scene control)</p><p>1 = 100ms</p><p>2 = 200ms</p><p>9 = 900ms</p>
]]></description>
<default>5</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_52_1" type="integer" groupName="configuration">
<label>52: Enables or disables smart bulb mode</label>
<description><![CDATA[
Enables or disables smart bulb mode<br /> <h1>Overview</h1><p>Enables or disables smart bulb mode</p><p>More Details</p><p>0 = Disable SBM</p><p>1 = Enable SBM</p>
]]></description>
<default>0</default>
<options>
<option value="0">Disable SBM</option>
<option value="1">Enable SBM</option>
</options>
</parameter>
<parameter name="config_53_1" type="integer" groupName="configuration">
<label>53: Double-Tap Up to Parameter 55</label>
<description><![CDATA[
Enable or Disable setting brightness to parameter 55 on double-tap up.<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>Enable or Disable setting brightness to parameter 55 on double-tap up.</p><p>More Details</p><p>0 = Disabled</p><p>1 = Enabled</p>
]]></description>
<default>0</default>
<options>
<option value="0">Disabled</option>
<option value="1">Enabled</option>
</options>
</parameter>
<parameter name="config_54_1" type="integer" groupName="configuration">
<label>54: Double-Tap Down to Parameter 56</label>
<description><![CDATA[
Enable or Disable setting brightness to parameter 56 on double-tap down.<br /> <h1>Overview</h1><p>Enable or Disable setting brightness to parameter 56 on double-tap down.</p><p>More Details</p><p>0 = Disabled</p><p>1 = Enabled</p>
]]></description>
<default>0</default>
<options>
<option value="0">Disabled</option>
<option value="1">Enabled</option>
</options>
</parameter>
<parameter name="config_55_1" type="integer" groupName="configuration">
<label>55: Brightness Level for Double-Tap Up</label>
<description><![CDATA[
Set this level on double-tap up (if enabled by P53)<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>Set this level on double-tap up (if enabled by P53)</p><p>More Details</p><p>1 = 1%</p><p>2 = 2%</p><p>99 = 99%</p>
]]></description>
<default>99</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_56_1" type="integer" groupName="configuration">
<label>56: Brightness Level for Double-Tap Down</label>
<description><![CDATA[
Set this level on double-tap down (if enabled by P54)<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>Set this level on double-tap down (if enabled by P54)</p><p>More Details</p><p>0 = off</p><p>1 = 1%</p><p>2 = 2%</p><p>99 = 99%</p>
]]></description>
<default>1</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_58_1" type="integer" groupName="configuration">
<label>58: Exclusion Behavior</label>
<description><![CDATA[
How the device behaves during exclusion<br /> <h1>Overview</h1><p>How the device behaves during exclusion</p><p>More Details</p><p>0 = LED Bar Does Not Pulse (when config tapped 3x)</p><p>1 = LED Bar pulses blue</p><p>2 = Device does not enter exclusion mode (requires factory reset to leave network or change this parameter)</p>
]]></description>
<default>1</default>
<options>
<option value="0">LED Bar Does Not Pulse</option>
<option value="1">LED Bar pulses blue</option>
<option value="2">Device does not enter exclusion mode</option>
</options>
</parameter>
<parameter name="config_59_1" type="integer" groupName="configuration">
<label>59: Association Behavior</label>
<description><![CDATA[
Choose when the switch sends commands to associated devices<br /> <h1>Overview</h1><p>Choose when the switch sends commands to associated devices</p><p>More Details</p><p>0 = Never</p><p>1 = Local</p><p>2 = Z-Wave</p><p>3 = Both</p>
]]></description>
<default>1</default>
<options>
<option value="0">Never</option>
<option value="1">Local</option>
<option value="2">Z-Wave</option>
<option value="3">Both</option>
</options>
</parameter>
<parameter name="config_64_4" type="integer" groupName="configuration">
<label>64: LED #1 Notification</label>
<description><![CDATA[
A 4-Byte encoded LED Notification for LED #1 (bottom LED)<br /> <h1>Overview</h1><p>A 4-Byte encoded LED Notification for LED #1 (bottom LED)</p><p>More Details</p><p>To see an example, please go to the following URL: https://inovelliusa.github.io/inovelli-switch-toolbox/ and select, "VZW31-SN" under the "Switch Type" dropdown. Then select, "1" under where it says, "LED" and then play with the values (Color, Brightness, Duration, etc).</p>
]]></description>
<default>0</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_69_4" type="integer" groupName="configuration">
<label>69: LED #2 Notification</label>
<description><![CDATA[
A 4-Byte encoded LED Notification for LED #2 (second from the bottom LED)<br /> <h1>Overview</h1><p>A 4-Byte encoded LED Notification for LED #2 (bottom LED)</p><p>More Details</p><p>To see an example, please go to the following URL: https://inovelliusa.github.io/inovelli-switch-toolbox/ and select, "VZW31-SN" under the "Switch Type" dropdown. Then select, "2" under where it says, "LED" and then play with the values (Color, Brightness, Duration, etc).</p>
]]></description>
<default>0</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_74_4" type="integer" groupName="configuration">
<label>74: LED #3 Notification</label>
<description><![CDATA[
A 4-Byte encoded LED Notification for LED #3 (third from the bottom LED)<br /> <h1>Overview</h1><p>A 4-Byte encoded LED Notification for LED #3 (third from the bottom LED)</p><p>More Details</p><p>To see an example, please go to the following URL: https://inovelliusa.github.io/inovelli-switch-toolbox/ and select, "VZW31-SN" under the "Switch Type" dropdown. Then select, "3" under where it says, "LED" and then play with the values (Color, Brightness, Duration, etc).</p>
]]></description>
<default>0</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_79_4" type="integer" groupName="configuration">
<label>79: LED #4 Notification</label>
<description><![CDATA[
A 4-Byte encoded LED Notification for LED #4 (middle LED)<br /> <h1>Overview</h1><p>A 4-Byte encoded LED Notification for LED #4 (middle LED)</p><p>More Details</p><p>To see an example, please go to the following URL: https://inovelliusa.github.io/inovelli-switch-toolbox/ and select, "VZW31-SN" under the "Switch Type" dropdown. Then select, "4" under where it says, "LED" and then play with the values (Color, Brightness, Duration, etc).</p>
]]></description>
<default>0</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_84_4" type="integer" groupName="configuration">
<label>84: LED #5 Notification</label>
<description><![CDATA[
A 4-Byte encoded LED Notification for LED #5 (third from the top LED)<br /> <h1>Overview</h1><p>A 4-Byte encoded LED Notification for LED #5 (third from the top LED)</p><p>More Details</p><p>To see an example, please go to the following URL: https://inovelliusa.github.io/inovelli-switch-toolbox/ and select, "VZW31-SN" under the "Switch Type" dropdown. Then select, "5" under where it says, "LED" and then play with the values (Color, Brightness, Duration, etc).</p>
]]></description>
<default>0</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_89_4" type="integer" groupName="configuration">
<label>89: LED #6 Notification</label>
<description><![CDATA[
A 4-Byte encoded LED Notification for LED #6 (second from the top LED)<br /> <h1>Overview</h1><p>A 4-Byte encoded LED Notification for LED #6 (second from the top LED)</p><p>More Details</p><p>To see an example, please go to the following URL: https://inovelliusa.github.io/inovelli-switch-toolbox/ and select, "VZW31-SN" under the "Switch Type" dropdown. Then select, "6" under where it says, "LED" and then play with the values (Color, Brightness, Duration, etc).</p>
]]></description>
<default>0</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_94_4" type="integer" groupName="configuration">
<label>94: LED #7 Notification</label>
<description><![CDATA[
A 4-Byte encoded LED Notification for LED #7 (top LED)<br /> <h1>Overview</h1><p>A 4-Byte encoded LED Notification for LED #7 (top LED)</p><p>More Details</p><p>To see an example, please go to the following URL: https://inovelliusa.github.io/inovelli-switch-toolbox/ and select, "VZW31-SN" under the "Switch Type" dropdown. Then select, "7" under where it says, "LED" and then play with the values (Color, Brightness, Duration, etc).</p>
]]></description>
<default>0</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_95_1" type="integer" groupName="configuration">
<label>95: LED Indicator Color (When On) - LED #'s 1-7</label>
<description><![CDATA[
This will set the default color of the LED Bar (all 7 LED's) when the switch is on<br /> <h1>Overview</h1><p>This will set the default color of the LED Bar (all 7 LED's) when the switch is on</p><p>More Details</p><p>0 = Red</p><p>14 = Orange</p><p>35 = Lemon</p><p>64 = Lime</p><p>85 = Green</p><p>106 = Teal</p><p>127 = Cyan</p><p>149 = Aqua</p><p>170 = Blue</p><p>191 = Violet</p><p>212 = Magenta</p><p>234 = Pink</p><p>255 = White</p>
]]></description>
<default>-86</default>
<options>
<option value="0">Red</option>
<option value="14">Orange</option>
<option value="35">Lemon</option>
<option value="64">Lime</option>
<option value="85">Green</option>
<option value="106">Teal</option>
<option value="127">Cyan</option>
<option value="149">Aqua</option>
<option value="170">Blue</option>
<option value="191">Violet</option>
<option value="212">Magenta</option>
<option value="234">Pink</option>
<option value="255">White</option>
</options>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_96_1" type="integer" groupName="configuration">
<label>96: LED Indicator Color (When Off) - LED #'s 1-7</label>
<description><![CDATA[
This will set the default color of the LED Bar (all 7 LED's) when the switch is off<br /> <h1>Overview</h1><p>This will set the default color of the LED Bar (all 7 LED's) when the switch is off</p><p>More Details</p><p>0 = Red</p><p>14 = Orange</p><p>35 = Lemon</p><p>64 = Lime</p><p>85 = Green</p><p>106 = Teal</p><p>127 = Cyan</p><p>149 = Aqua</p><p>170 = Blue</p><p>191 = Violet</p><p>212 = Magenta</p><p>234 = Pink</p><p>255 = White</p>
]]></description>
<default>-86</default>
<options>
<option value="0">Red</option>
<option value="14">Orange</option>
<option value="35">Lemon</option>
<option value="64">Lime</option>
<option value="85">Green</option>
<option value="106">Teal</option>
<option value="127">Cyan</option>
<option value="149">Aqua</option>
<option value="170">Blue</option>
<option value="191">Violet</option>
<option value="212">Magenta</option>
<option value="234">Pink</option>
<option value="255">White</option>
</options>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_97_1" type="integer" groupName="configuration">
<label>97: LED Indicator Intensity (When On) - LED #'s 1-7</label>
<description><![CDATA[
This will set the intensity (ie: how bright it is) of the LED bar (all 7 LED's) when the switch is on<br /> <h1>Overview</h1><p>This will set the intensity (ie: how bright it is) of the LED bar (all 7 LED's) when the switch is on</p><p>More Details</p><p>0 = Off</p><p>10 = Low</p><p>50 = Medium</p><p>100 = High</p>
]]></description>
<default>33</default>
<options>
<option value="0">Off</option>
<option value="10">Low</option>
<option value="50">Medium</option>
<option value="100">High</option>
</options>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_98_1" type="integer" groupName="configuration">
<label>98: LED Indicator Intensity (When Off) - LED #'s 1-7</label>
<description><![CDATA[
This will set the intensity (ie: how bright it is) of the LED bar (all 7 LED's) when the switch is off<br /> <h1>Overview</h1><p>This will set the intensity (ie: how bright it is) of the LED bar (all 7 LED's) when the switch is off</p><p>More Details</p><p>0 = Off</p><p>10 = Low</p><p>50 = Medium</p><p>100 = High</p>
]]></description>
<default>1</default>
<options>
<option value="0">Off</option>
<option value="10">Low</option>
<option value="50">Medium</option>
<option value="100">High</option>
</options>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_99_4" type="integer" groupName="configuration">
<label>99: All LED Notification</label>
<description><![CDATA[
A 4-Byte encoded LED Notification for LED's 1-7 (all LED's)<br /> <h1>Overview</h1><p>A 4-Byte encoded LED Notification for LED's 1-7 (all LED's)</p><p>More Details</p><p>To see an example, please go to the following URL: https://inovelliusa.github.io/inovelli-switch-toolbox/ and select, "VZW31-SN" under the "Switch Type" dropdown. Then select, "All" under where it says, "LED" and then play with the values (Color, Brightness, Duration, etc).</p>
]]></description>
<default>0</default>
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_100_1" type="integer" groupName="configuration">
<label>100: LED Bar Scaling</label>
<description><![CDATA[
Method used for LED Bar scaling.<br /> <h1>Overview</h1><p><b>Dimmer Mode Only</b><br /></p><p>Method used for LED Bar scaling. This allows you to match the scaling when two different generations are in the same gang box (ie: Gen 2 LZW31, LZW31-SN vs Gen 3 VZW31-SN)</p><p>More Details</p><p>0 = Gen 3 (VZW)</p><p>1 = Gen 2 (LZW)</p>
]]></description>
<default>0</default>
<options>
<option value="0">Gen 3 (VZW)</option>
<option value="1">Gen 2 (LZW)</option>
</options>
</parameter>
<parameter name="config_123_1" type="integer" groupName="configuration">
<label>123: Aux Switch Unique Scenes</label>
<description><![CDATA[
Have unique scene numbers for scenes activated with the aux switch.<br /> <h1>Overview</h1><p>Have unique scene numbers for scenes activated with the aux switch. In other words, you can activate Scene A (multi-tap) from the smart switch and activate Scene B (multi-tap) from the auxiliary switch with the same number of multi-taps.</p><p>More Details</p><p>0 = Disabled</p><p>1 = Enabled</p>
]]></description>
<default>0</default>
<options>
<option value="0">Disabled</option>
<option value="1">Enabled</option>
</options>
</parameter>
<parameter name="config_158_1" type="integer" groupName="configuration">
<label>158: Switch Type</label>
<description><![CDATA[
Select what type of installation you have<br /> <h1>Overview</h1><p>Select what type of installation you have</p><p>More Details</p><p>0 = Single-Pole (ie: one switch)</p><p>1 = Multi-Way (Dumb Switch)</p><p>2 = Multi-Way (Auxiliary Switch)</p>
]]></description>
<default>0</default>
<options>
<option value="0">Single-Pole (ie: one switch)</option>
<option value="1">Multi-Way (Dumb Switch)</option>
<option value="2">Multi-Way (Auxiliary Switch)</option>
</options>
</parameter>
<parameter name="config_159_1" type="integer" groupName="configuration">
<label>159: LED Bar in On/Off Switch Mode</label>
<description><![CDATA[
When the device in in On/Off Mode, use the Full LED Bar or just one LED<br /> <h1>Overview</h1><p><b>On/Off Mode Only</b><br /></p><p>When the device in in On/Off Mode, use the Full LED Bar or just one LED</p><p>More Details</p><p>0 = Full Bar</p><p>1 = One LED</p>
]]></description>
<default>0</default>
<options>
<option value="0">Full Bar</option>
<option value="1">One LED</option>
</options>
</parameter>
<parameter name="config_160_1" type="integer" groupName="configuration">
<label>160: Firmware Update-in-Progress Bar</label>
<description><![CDATA[
Display the firmware update progress on the LED Bar<br /> <h1>Overview</h1><p>Display the firmware update progress on the LED Bar</p><p>More Details</p><p>0 = Disabled</p><p>1 = Enabled</p>
]]></description>
<default>1</default>
<options>
<option value="0">Disabled</option>
<option value="1">Enabled</option>
</options>
</parameter>
<parameter name="config_161_1" type="integer" groupName="configuration">
<label>161: Relay Click</label>
<description><![CDATA[
Audible click in On/Off Mode<br /> <h1>Overview</h1><p>Audible click in On/Off Mode</p><p>More Details</p><p>0 = Enabled</p><p>1 = Disabled</p>
]]></description>
<default>1</default>
<options>
<option value="0">Enabled</option>
<option value="1">Disabled</option>
</options>
</parameter>
<parameter name="config_162_1" type="integer" groupName="configuration">
<label>162: Double-Tap Config/Favorites Button to Clear Notification</label>
<description><![CDATA[
Double-Tap the config/favorites button to clear notifications<br /> <h1>Overview</h1><p>Double-Tap the config/favorites button to clear notifications</p><p>More Details</p><p>0 = Enabled</p><p>1 = Disabled</p>
]]></description>
<default>0</default>
<options>
<option value="0">Enabled</option>
<option value="1">Disabled</option>
</options>
</parameter>
<!-- ASSOCIATION DEFINITIONS -->
<parameter name="group_1" type="text" groupName="association" multiple="true">
<label>1: Lifeline</label>
<description><![CDATA[
<br /> <h1>Overview</h1><p>Members of this group will receive unsolicited messages related to the status of the switch<br /></p>
]]></description>
<multipleLimit>10</multipleLimit>
</parameter>
<parameter name="group_2" type="text" groupName="association" multiple="true">
<label>2: Basic Set</label>
<description><![CDATA[
<br /> <h1>Overview</h1><p>Sends On &amp; Off commands to associated devices</p><p>1. Single press on the up button sends BasicSet (0xFF)</p><p>2. Single press on the down button sends BasicSet (0x00)</p>
]]></description>
<multipleLimit>10</multipleLimit>
</parameter>
<parameter name="group_3" type="text" groupName="association" multiple="true">
<label>3: Switch Multilevel Set</label>
<description><![CDATA[
<br /> <h1>Overview</h1><p>Sends set level commands to associated devices when switch is pressed.</p><p>1. Release up or down button sends Switch MultiLevelSet which keeps associated devices in sync with this device</p><p>2. Single press on the up button sends SwitchMultiLevelSet (0xFF)</p><p>3. Single press on the down button sends SwitchMultiLevelSet (0x00)</p><p>4. If param. 53 = 1, 2x press up sends SwitchMultiLevelSet to P55</p><p>5. If param. 54 = 1, 2x press down sends SwitchMultiLevelSet to P56</p>
]]></description>
<multipleLimit>10</multipleLimit>
</parameter>
<parameter name="group_4" type="text" groupName="association" multiple="true">
<label>4: Switch Multilevel Start/Stop</label>
<description><![CDATA[
<br /> <h1>Overview</h1><p>Sends start / stop level change to associated devices (only in dimmer mode)</p><p>1. Hold up button sends SW_MULTILEVEL_START_LEVEL_CHANGE (Up)</p><p>2. Hold down button sends SW_MULTILEVEL_START_LEVEL_CHANGE (Down)</p><p>3. Release either button sends SW_MULTILEVEL_STOP_LEVEL_CHANGE</p>
]]></description>
<multipleLimit>10</multipleLimit>
</parameter>
<parameter name="group_5" type="text" groupName="association" multiple="true">
<label>5: Double-Tap Basic Set</label>
<description><![CDATA[
<br /> <h1>Overview</h1><p>Sends On &amp; Off commands to associated devices</p><p>1. 2x/3x press on the up button sends BasicSet (0xFF)</p><p>2. 2x/3x press on the down button sends BasicSet (0x00)</p>
]]></description>
<multipleLimit>10</multipleLimit>
</parameter>
<parameter name="group_6" type="text" groupName="association" multiple="true">
<label>6: Triple-Tap Basic Set</label>
<description><![CDATA[
<br /> <h1>Overview</h1><p>Sends On &amp; Off commands to associated devices</p><p>1. 2x/3x press on the up button sends BasicSet (0xFF)</p><p>2. 2x/3x press on the down button sends BasicSet (0x00)</p>
]]></description>
<multipleLimit>10</multipleLimit>
</parameter>
<!-- STATIC DEFINITIONS -->
<parameter name="node_id" type="integer" min="1" max="232" readOnly="true" required="true">
<label>Node ID</label>
<advanced>true</advanced>
</parameter>
</config-description>
</thing-type>
</thing:thing-descriptions>

View File

@ -98,6 +98,13 @@ Motion/Temperature Sensor<br /> <h1>Overview</h1><p>The ZP3102 is a Z-Wave enabl
<limitToOptions>false</limitToOptions>
</parameter>
<parameter name="config_4_1" type="integer" groupName="configuration">
<label>4: User Defined Celsius Adjustment</label>
<description>-10 ~ -1, 0 ~ 10 (signed decimal in Celsius) (0xF6~0xFF, 0x0~0xA, default: 0x00)</description>
<default>0</default>
<limitToOptions>false</limitToOptions>
</parameter>
<!-- ASSOCIATION DEFINITIONS -->
<parameter name="group_1" type="text" groupName="association" multiple="true">
<label>1: Lifeline</label>