I am pleased to announce the release of the Z-Wave PC SDK v1.2. This is a free upgrade for all Z-Wave PC SDK customers.
The Z-Wave PC SDK is Z-Wave Certified software, and is interoperable with Z-Wave Certified products from other manufacturers.
This new version includes many exciting new features, listed below. To download the v1.2 installer, follow this download link:
http://www.controlthink.com/downloads/zwavepcsdk/setup.exeIMPORTANT: The Z-Wave PC SDK requires a license key. If you do not have a license key,
click here to order now.
New features in v1.2:
Support for AV Control Points and Satellite ReceiversThe
following device types have been added to this release:
ControlThink.ZWave.Devices.AVControlPoint and
ControlThink.ZWave.Devices.Specific.SatelliteReceiver. An example of
the SatelliteReceiver type is the new Sirius Conductor Satellite Radio.
The
SatelliteReceiver class includes a new function, SendKeys. This
function works identically to the System.Windows.Forms.SendKeys
function, and also includes an overload to send keycodes (for keys such
as "channel up," etc.).
Support for Multiposition Motors (windows shades and more)
Window
coverings are moving to a new, more capable device profile! The new
window shades (shipping soon!) will show up as
ControlThink.ZWave.Devices.Specific.MultiPosition devices. These work
just like light switches, and give you the capability to raise/lower
them from any remote!
New Connect(IPEndPoint) Overload
Pass in an IP endpoint (IP address and port), and connect to the network through a Z-Wave Ethernet Bridge.
Device Names and Locations
Some
new devices (such as the Leviton Vizia RF and Cooper Aspire RF
switches) support storing a name and location (up to 16 characters
each) in the devices themselves. For devices which support this
feature, you can now use the ZWaveDevice.Name and ZWaveDevice.Location
properties to set/get these values.
Copy Scenes and Groups with New AddController Overloads
AddController, TransferPrimaryRole, and CreateNewPrimaryController now
accept ReplicationGroups and
ReplicationScenes arrays as parameters. Simply pass in an array of
ReplicationGroups and/or ReplicationScenes, and they will be
transferred to the target controller during controller replication.
Receive Scenes and Groups with New ReceiveConfiguration Overload
ReceiveConfiguration now accepts ReplicationGroups and
ReplicationScenes arrays as passed-by-reference parameters. Simply
create an empty array of these types, and you'll receive any groups or
scenes transferred to your USB stick during controller replication.
Device Scene Functionality (including ramp rates)
Some
new devices (such as the Leviton Vizia RF and Cooper Aspire RF
switches) support storing scene setup inside the devices themselves.
For example, you can configure all of your light switches and plug-in
modules which support the Scene profile to all go to different levels
at once. You can also dim/brighten the devices at instant or variable
ramp rates. You can even use this Z-Wave feature to
setup scenes that your computer can participate in--launching scene
macros and the such using in-wall controllers and remote controls!
To use the scene functionality, check out the
ZWaveDevice.Scenes collection. It will have 255 scenes (1-255), each
of which have a few methods and properties: Activate(...), which
activates the scene by number (and where you can overwrite the ramp
rate during individual activations); Level specifies the level (1-99)
that the device should go to when it is activated; DimmingDuration
specifies the amount of time (0-127 seconds in 1 second increments, or
1-127 minutes in 1 minute increments) that it should take to arrive at
the destination level. This is great for home theaters and more...
Scene Controller Configuration
Set up your in-wall scene
controllers (such as the Vizia RF one- and four-button scene
controllers) with the new ZWaveDevice.Groups[x].SceneConfiguration
property. After you configure a scene in the target device(s), add
those devices into the corresponding Group of your in-wall controller
and then set the SceneConfiguration's Scene ID and optional
DimmingDuration properties. The buttons will now activate the
specified scenes in those devices when you manually press them.
SceneActivated Event
This
is a very exciting new feature. If you associate your USB stick into an in-wall
scene controller button, and set up a scene to be activated in the software, the SceneActivated event will be raised when
that scene is activated! You
can also use the ZWaveDevice.Scenes[x].Activate() function to
programatically activate scenes on another computer.
The new
ZWaveController.ActiveSceneID property accompanies these two new events
as well. When a scene is activated, this Byte value will be changed to
the new scene ID automatically. If your code changes "out" of a scene,
be sure to update this Byte value to the appropriate Scene ID--either
the new scene that you're exhibiting, or Byte.MinValue (0) if no scene
is currently active. If the ActiveSceneID property matches an incoming
scene activation command, no SceneActivation event will be fired (since
that scene is already active).
Please be aware that Leviton's
current one- and four-button scene and zone controllers only raise the
SceneActivated event when the scene is activated. These devices allow
you to turn a scene "off," but that doesn't have any meaning to the PC
so you won't get an event for the "off" state. Also, the four-button
zone controller will work in "scene controller" mode simply by setting
the SceneConfiguration properties for the button in question.
Leviton Enhanced 2-Way Feedback
While previous builds
included partial support for Leviton's Enhanced 2-Way Feedback, this
build includes the first complete implementation. Simply associate
your Z-Wave USB stick into Group 1 of the switches and plug-in
modules that you'd like to monitor, and you will automatically receive
LevelChanged events whenever the device is adjusted manually. Please
note that this should only be done with always-on computers or Ethernet
Gateways.
Support for and Autodetection of Vizia RF Foyer
The
Connect() function will now automatically seek out a Vizia RF Foyer
(Z-Wave Ethernet Bridge) on the local network and use it as its Z-Wave
network connection if no compatible Z-Wave USB dongle was detected.
New Exceptions: DeviceBusyException, CommandRejectedException, and CommandDelayedException
These exceptions may be raised when:
- DeviceBusyException
-- a device is too busy to process the command. If the TimeToWait
timespan is zero, try again later; if the TimeToWait timespan is
non-zero, wait that much time (or longer) before retrying.
- CommandRejectedException
-- a device has rejected the command (usually because it is in a
"locked" state, where the command could cause unintended consequences)
- CommandDelayedException -- a device is too busy to process the command, but has queued it up to process it later.
Please
note that these exceptions may be raised by the device a number of
seconds after the command has already completed; in these cases, the
exception will not be raised. This exception should be used for
convenience purposes and processed if received, but should not be
relied on. To verify that an operation actually suceeded, simply query
the property in question after it has been set.
AllOn, AllOff Functions
The
new AllOn/AllOff functions enable you to activate the "all on" or "all
off" functionality in a Z-Wave device which supports it. The "all on"
and "all off" functions can be enabled or disabled in these devices by
using the ZWaveDevice.AllOnEnabled and ZWaveDevice.AllOffEnabled
properties. This state (of supporting/not supporting these
capabilities) is stored in the device and persisted automatically.
Level Property and LevelChanged EventThe PC SDK now
supports the concept of a "level" like many other Z-Wave devices. This
level is represented as a virtual level in the software (a "virtual
indicator" if you will). You can change the level of the
ZWaveController, for example, to 50. And then you can call the
ZWaveController.EmitDeviceInformation() function while setting up a
scene in an Intermatic controller. Now, when you press that button on
the controller, you'll get the LevelChanged event in your software
(unless the Level property is already set to that level). This can be very useful for
setting up macros, setting up "virtual 3-ways" with switches, etc. The
LevelChanged event does contain an OriginDevice property, so you even
know what device changed your level.
EmitDeviceInformation FunctionMentioned
in conjunction with the Level property, this function emits device
information from your USB stick. This is what happens when you press
the program button on a plug-in module or turn on/off most light
switches. With this capability, you can associate your stationary USB
stick with other devices, add it to groups/scenes in controllers, etc.
Ping FunctionZWaveDevice.Ping()
can be used to "ping" a device and make sure that it is available and
present in the network. This is often useful to ensure that all
devices are present in the network.
Level Property ChangesPreviously,
the Level property was disabled for many ZWaveDevices, and would throw
a NotSupportedException. The Z-Wave protocol specification has been
updated to allow many device types to optionally implement the Level
functionality. So while there's no way to absolutely know if a device
supports the Level property (in devices where this is optional), you
will simply get a timeout exception now for devices which don't support
Level functionality. Please note that some devices can't have their
Level changed, such as thermostats and some/all sensors--and in these
cases, you'll still get a NotSupportedException.
New HardReset Parameter: alwaysOnAndStationary
If
your USB stick is attached to a computer which moves in the network or
is not always turned on, be sure to set the alwaysOnAndStationary parameter to
False. This will exclude your computer from the routing topology so
that messages don't get slowed down trying to route through your
computer when it is turned off.
Enhanced Communication Reliability for Intermatic HA22 USB Stick
Z-Wave
communciation reliability should be enhanced for the Intermatic HA22
USB stick, reducing DeviceNotRespondingExceptions in the network.
Intellisense Support
Most of the classes, properties, methods, etc. now have built-in
Intellisense support for easier coding in the Visual Studio Development
Environment.
Supported USB, RS232, and Ethernet Z-Wave Controllers- Intermatic HomeSettings HA22 USB Stick
- Cooper Aspire RF USB and USB PRO Sticks
- ACT ZCU000 (US) and ZCU010 (EU/UK) USB Controllers
- Wayne-Dalton Z-Wave USB Stick
- Leviton Vizia RF Foyer (Ethernet Bridge)
- RS232 (Serial) Z-Wave PC Controllers
- And many more...
Chris