Commit f177b1cd authored by phenigma's avatar phenigma

Refs #2801 - commit of open-zwave 1.5 from upstream ubuntu artful aardvark

parent f1f1d922
This diff is collapsed.
Minimal Install Guide for OpenZWave!
For Unix's (including Mac, bsd's etc)
=================
execute Make in the Top Level Directory
make
Libraries to link to (Static and Dynamic) will be in top level directory as
well (but you can change that as detailed below with LIBDIR)
To Install:
make install
Some Options you can set:
"BUILD=(release|debug)" - Build a Release or Debug Version of the Library
(Release is default)
"PREFIX=(path)" - Prefix to install the shared library into - Defaults to
/usr/local
"LIBDIR=/tmp" - Path to place the libraries into after complication. A poor
mans "make install" for simple Applications.
To use the options, specify them on the commandline when executing make eg:
"BUILD=debug PREFIX=/opt/local make"
What Gets installed:
When make install is called the following happens:
* Documentation:
if you have DoxyGen, API documentation is installed into
(PREFIX)/share/doc/openzwave-(version)/
* Shared Libary (libopenzwave.so.*):
The Shared Library is installed into either (prefix)/lib64 (on 64
bit platforms) or (prefix)/lib/ on 32 bit platforms)
* Header Files:
Installed into (prefix)/include/openzwave/
* pkg-config file:
Installed into (prefix)/lib(64)/pkgconfig/libopenzwave.pc
* Config files and Device Databases (manufacturer_specific.xml et al)
Installed into (prefix)/etc/openzwave/
* MinOZW example program:
Installed into (prefix)/bin/ directory
The Static Version of the library is never installed, but will be created in
top build directory after a successfull make.
Windows Versions
================
Visual Studio Solution Files and Mingw32 Makefiles are present in
cpp/build/windows/. Select the correct Visual Studio or Mingw32 directory
depending on the versions you have.
(Note, if building DLL's on Windows (currently a option in the vs2010
solution) - You have to ensure you application is compiled with exactly the
same compiler options and versions as OpenZWave - Otherwise strange things
might happen)
For the .NET dll, the solution files exist in the dotnet/build/ directory
Sample Programs
===============
For all platforms, there is a simple example program that will print out
events as they happen on your ZWave network. This sample is called MinOZW
and you can find the source in the cpp/examples directory. By default, these
examples are built during the Make Install Stage. If you want compile them
separately, you can use the "make examples" target.
For the .NET wrapper, there is a OZWForm application in
dotnet/examples/OZWForm/. Please read the README file in that directory for
further instructions
#
# Makefile for OpenzWave Mac OS X applications
# Greg Satz
# GNU make only
# requires libudev-dev
.SUFFIXES: .d .cpp .o .a
.PHONY: default clean install
top_srcdir := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
top_builddir ?= $(CURDIR)
export top_builddir
PREFIX ?= /usr/local
export PREFIX
all:
CPPFLAGS=$(CPPFLAGS) $(MAKE) -C $(top_srcdir)/cpp/build/ -$(MAKEFLAGS)
CPPFLAGS=$(CPPFLAGS) $(MAKE) -C $(top_srcdir)/cpp/examples/MinOZW/ -$(MAKEFLAGS)
install:
$(MAKE) -C $(top_srcdir)/cpp/build/ -$(MAKEFLAGS) $(MAKECMDGOALS)
$(MAKE) -C $(top_srcdir)/cpp/examples/MinOZW/ -$(MAKEFLAGS) $(MAKECMDGOALS)
clean:
$(MAKE) -C $(top_srcdir)/cpp/build/ -$(MAKEFLAGS) $(MAKECMDGOALS)
$(MAKE) -C $(top_srcdir)/cpp/examples/MinOZW/ -$(MAKEFLAGS) $(MAKECMDGOALS)
cpp/src/vers.cpp:
CPPFLAGS=$(CPPFLAGS) $(MAKE) -C $(top_srcdir)/cpp/build/ -$(MAKEFLAGS) cpp/src/vers.cpp
check: xmltest
include $(top_srcdir)/cpp/build/support.mk
ifeq ($(XMLLINT),)
xmltest: $(XMLLINT)
$(error xmllint command not found.)
else
xmltest: $(XMLLINT)
@$(XMLLINT) --noout --schema $(top_srcdir)/config/device_classes.xsd $(top_srcdir)/config/device_classes.xml
@$(XMLLINT) --noout --schema $(top_srcdir)/config/options.xsd $(top_srcdir)/config/options.xml
@$(XMLLINT) --noout --schema $(top_srcdir)/config/manufacturer_specific.xsd $(top_srcdir)/config/manufacturer_specific.xml
@$(XMLLINT) --noout --schema $(top_srcdir)/config/device_configuration.xsd $(top_srcdir)/config/*/*.xml
endif
dist-update:
@echo "Updating List of Distribition Files"
@$(GIT) ls-files > .distfiles
@$(top_srcdir)/makedist
DIST_FORMATS ?= gzip
include $(top_srcdir)/distfiles.mk
include $(top_srcdir)/dist.mk
Open-ZWave Library
==================
Our goal is to create free software library that interfaces with selected Z-Wave PC controllers, allowing anyone to create applications that manipulate and respond to devices on a Z-Wave network, without requiring in-depth knowledge of the Z-Wave protocol.
This software is currently aimed at Application Developers who wish to incorporate Z-Wave functionality into their applications.
Our Homepage is at http://www.openzwave.net/ and our Github Page is located at https://github.com/OpenZWave/. If you wish to participate on our Mailing List, please visit https://groups.google.com/forum/#!forum/openzwave
## Getting Started
There is a example application on how to interface with the library called MinOZW. This currently offers a minimal example on how to monitor for changes and enable Polling of values. There are also plenty of other examples on the Internet that you can research.
## Getting Help
If you are using a Application that uses OZW, you should first check with the Application Developers for support. As OZW is a library used by dozens of large opensource home automation applications, we can not support application related issues here. If your application developer indicates the problem may be with OZW, please follow the guidelines below.
First thing you should do if you are running into troubles is search our [mailing list](https://groups.google.com/forum/#!forum/openzwave). There is a high chance that your problem may have already been discussed on the list.
If your still having problems, you should Generate a Log file and upload your Log to the [Log Analyzer on our homepage](http://www.openzwave.com/log-analyzer), which will check for common issues, and provide some basic recommendations. Please follow the instructions on that page to ensure your log file contains the relevant information.
If you think you have found a bug, please see the next section.
For General Questions/How Do I etc, please post a message to our [mailing list](https://groups.google.com/forum/#!forum/openzwave)
## Opening or Contributing to a Issue on Github
Z-Wave is a reasonably complex protocol, and thus, it almost always necessary for us to review a OZW Log file to determine what’s going on. As GitHub does not support attachments on Issues, please upload a [LogFile](http://www.openzwave.com/log-analyzer) and then create a issue on [GitHub](https://github.com/OpenZWave/open-zwave/issues). Please include a link to the LogFile Scan results (check the "Public Results" button on the results page and copy the URL it links to).
Not uploading a Log file will often mean that we are unable to provide any further help without seeing what’s going on, so please ensure you do this.
## Supporting New Devices
If your device is not recognized by OZW, it should still work as long as its compliant with the Z-Wave specifications. Our Device database is mainly community contributions, so please consult [this page](https://github.com/OpenZWave/open-zwave/wiki/Adding-Devices) on how to add the Device to the manufacturer_specific.xml file and generate a Configuration file for it.
## Contributing to OZW
We are happy to accept Pull Requests via GitHub. A few things to follow when preparing a Pull Request.
1. If you have added or changed any of the configuration files (eg, adding a new device) please run "make xmltest" from the root directory to ensure your XML is well formed.
2. Please add a entry to the ChangeLog describing the change you made.
3. If you are changing some internal code paths in OZW, please discuss on the mailing list prior to starting your work. Z-Wave is complex and there are lots of corner cases as far as proper support of the various (non-standard) devices out there. While it might sometimes seem overcomplicated, it most likely is there for a reason.
4. Finally, if you have signed a NDA with Sigma Designs, we are unable to accept your changes. OZW is developed by reverse engineering and consulting publically available information. We have not signed a NDA with Sigma, and do not want users to infringe upon their agreement with Sigma either.
## Final Words
As mentioned above, Open-ZWave is developed by mainly reverse engineering the protocol as well as consulting various public information on the Internet. We have not used any of the Sigma SDK’s or documentation and thus often it will take us a while to support new features of Z-Wave.
We have had very preliminary discussions with both the Z-Wave Alliance and Sigma previously but we do not have any "official" endorsement from either of them (though that is a goal for the developers). We do believe that OZW has benefited the Z-Wave ecosystem though, and have received feedback that we are well known by various Z-Wave Vendors.
That being said, although our license (LGPL) permits commercial applications (provided your follow the rules) we strong recommend you consult a lawyer prior to implementing OZW support into your application.
Of course, for Open Source applications, as long as you abide by our License (LGPL) we would love to welcome you the OZW community!
And for those that are wondering, you cannot use OZW to create Z-Wave Nodes. This is not the goal of the library, and we believe that if we started implementing a software stack that allowed users to start creating Z-Wave Nodes, Sigma designs would not be so happy about our existence. Hence please avoid discussing this topic on our mailing list .
<?xml version="1.0" encoding="utf-8"?>
<Product xmlns='http://code.google.com/p/open-zwave/'>
<!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
<CommandClass id="67" base="0" />
</Product>
<?xml version="1.0" encoding="utf-8"?>
<Product xmlns='http://code.google.com/p/open-zwave/'>
<!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
<CommandClass id="67" base="0" />
</Product>
<?xml version="1.0" encoding="utf-8"?>
<Product xmlns='http://code.google.com/p/open-zwave/'>
<!-- This thermostat's setpoint descriptions are 0 based, not 1 -->
<CommandClass id="67" base="0" />
</Product>
<?xml version="1.0" encoding="utf-8"?>
<!--http://benext.eu/static/manual/1poleswitch.pdf-->
<Product xmlns='http://code.google.com/p/open-zwave/'>
<!-- Configuration -->
<CommandClass id="112">
<Value type="byte" genre="config" instance="1" index="1" label="Set to Default" value="-1">
<Help>Set all configuration values to default values (factory settings).</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="10" label="Mode" value="255">
<Help>The mode in which a different Z-Wave message is sent.</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="11" label="Double press time" value="20">
<Help>The time that a user has to activate the double button pressed scene, if time is passed then the single pressed button scene is notified. (value * 10 ms)</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="12" label="Temperature offset" value="0" size="2">
<Help>A signed integer to determine the offset of the temperature.</Help>
</Value>
</CommandClass>
<!-- Association Groups -->
<CommandClass id="133">
<Associations num_groups="4">
<Group index="1" max_associations="8" label="Group 1" auto="false"/>
<Group index="2" max_associations="8" label="Group 2" auto="false"/>
<Group index="3" max_associations="8" label="Group 3" auto="false"/>
<Group index="4" max_associations="8" label="Group 4" auto="false"/>
</Associations>
</CommandClass>
</Product>
<?xml version="1.0" encoding="utf-8"?>
<!--http://benext.eu/static/manual/2poleswitch.pdf-->
<Product xmlns='http://code.google.com/p/open-zwave/'>
<!-- Configuration -->
<CommandClass id="112">
<Value type="byte" genre="config" instance="1" index="1" label="Set to Default" value="-1">
<Help>Set all configuration values to default values (factory settings).</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="10" label="Mode" value="255">
<Help>The mode in which a different Z-Wave message is sent.</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="11" label="Double press time" value="20">
<Help>The time that a user has to activate the double button pressed scene, if time is passed then the single pressed button scene is notified. (value * 10 ms)</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="12" label="Temperature offset" value="0" size="2">
<Help>A signed integer to determine the offset of the temperature.</Help>
</Value>
</CommandClass>
<!-- Association Groups -->
<CommandClass id="133">
<Associations num_groups="4">
<Group index="1" max_associations="8" label="Group 1" auto="false"/>
<Group index="2" max_associations="8" label="Group 2" auto="false"/>
<Group index="3" max_associations="8" label="Group 3" auto="false"/>
<Group index="4" max_associations="8" label="Group 4" auto="false"/>
</Associations>
</CommandClass>
</Product>
<?xml version="1.0" encoding="utf-8"?>
<Product xmlns='http://code.google.com/p/open-zwave/'>
<!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
<CommandClass id="113" getsupported="false" />
<!-- Configuration -->
<CommandClass id="112">
<Value type="byte" genre="config" instance="1" index="1" label="Set to Default" value="-1">
<Help>Set all configuration values to default values (factory settings)</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="2" label="Destination routine enabled" value="255">
<Help>Enables an internal routine that periodically checks the Z-Wave device in assocication group 2</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="3" label="Destination routine success time" value="60">
<Help>Configure the time that the AlarmSound sends a new frame when previous frame was send successful</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="4" label="Destination routine failed time" value="240">
<Help>Configure the time that the AlarmSound sends a few frame when previous frame was send not successful</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="5" label="Temperature calibration offset (byte 1)" value="0">
<Help>A (signed) offset to calibrate the onboard temperature sensor</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="6" label="Temperature calibration offset (byte 2)" value="0">
<Help>A (signed) offset to calibrate the onboard temperature sensor</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="7" label="Select index sound/light mode" value="1">
<Help>The index of the sound mode when a switch binary/basic set frame is received</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="8" label="Power offline sound/light mode" value="6">
<Help>The index of the sound mode when the AlarmSound will start when it is unplugged</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="9" label="Error sound/light mode" value="5">
<Help>The index of the sound mode when the AlarmSound will play when it is unable to reach the device in association group 2</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="10" label="Sound/Light index 1" value="-1">
<Help>Params 10 until 27 are the values to configure the sound and light thtat are played when index 1 is selected</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="28" label="Sound/Light index 2" value="-1">
<Help>Params 28 until 45 are the values to configure the sound and light thtat are played when index 2 is selected</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="46" label="Sound/Light index 3" value="-1">
<Help>Params 46 until 63 are the values to configure the sound and light thtat are played when index 3 is selected</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="64" label="Sound/Light index 4" value="-1">
<Help>Params 64 until 81 are the values to configure the sound and light thtat are played when index 4 is selected</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="82" label="Sound/Light index 5" value="-1">
<Help>Params 82 until 99 are the values to configure the sound and light thtat are played when index 5 is selected</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="100" label="Sound/Light index 6" value="-1">
<Help>Params 100 until 117 are the values to configure the sound and light thtat are played when index 6 is selected</Help>
</Value>
</CommandClass>
<!-- Association Groups -->
<CommandClass id="133">
<Associations num_groups="2">
<Group index="1" max_associations="1" label="Group 1" auto="false"/>
<Group index="2" max_associations="1" label="Group 2" auto="false"/>
</Associations>
</CommandClass>
</Product>
<?xml version="1.0" encoding="utf-8"?>
<!--http://benext.eu/static/manual/builtindimmer.pdf-->
<Product xmlns='http://code.google.com/p/open-zwave/'>
<!-- Configuration -->
<CommandClass id="112">
<Value type="byte" genre="config" instance="1" index="1" label="Set to Default" value="-1">
<Help>Set all configuration values to default values (factory settings).</Help>
</Value>
<Value type="list" genre="config" instance="1" index="2" label="Button Type" value="0" size="1">
<Help>The way how the button reacts when press/released</Help>
<Item label="Toggle light when button is pressed, no action when button is released." value="0"/>
<Item label="Toggle light when button is released, Start dimming when button pressed." value="1"/>
<Item label="Toggle light when button is pressed and when button is Released, start dimming when quickly press and release button." value="2"/>
</Value>
<Value type="list" genre="config" instance="1" index="3" label="Control Type" value="0" size="1">
<Help>The way the Built-in Dimmer reacts when light is turned on/off with button</Help>
<Item label="Switch own light on and send a Z-Wave message to all associated nodes (direct and extern)" value="0"/>
<Item label="Don.t switch own light on but only send a Z-Wave message to associated node. (extern only)" value="1"/>
</Value>
<Value type="byte" genre="config" instance="1" index="4" label="Dimming enabled" value="1">
<Help>This parameter is used to enable the dimming option of the product. When disabled the dimming and fading routine are disabled.</Help>
<Item label="Dimming disabled." value="0"/>
<Item label="Dimming enabled." value="2"/>
</Value>
<Value type="byte" genre="config" instance="1" index="6" label="Maximum Powerload" value="200" size="2">
<Help>The maximum powerload in watts when light is turned on, when measured higher then this value the Inline Dimmer is automatically turned off.</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="7" label="Dimming Speed" value="3">
<Help>The speed of dimming when activated (manual and RF). Dim speed is 1% per value (* 10 ms)</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="8" label="Fading up Speed" value="3">
<Help>The speed of fading up when activated (manual and RF). Fade speed is 1% per value (* 10 ms)</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="9" label="Toggle time" value="50">
<Help>The time window to repress button to start dimming. Toggle time is value (* 10ms)</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="11" label="Auto meter report: percentage" value="20">
<Help>A percentage that an energy value must be different compared to a previous sent value before an unsolicited meter report is sent. Minimum value = 10% Maximum value = 100%</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="12" label="Auto meter report: watt" value="10">
<Help>A watt value that an energy value must be different compared to a previous sent value before an unsolicited meter report is sent. Minimum value = 5 watt Maximum value = 255 watt</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="13" label="Auto meter report: time" value="20">
<Help>A time value that has to be passed compared to a previous sent value before a unsolicited meter report is sent. Minimum value = 10 seconds Maximum value = 255 seconds</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="14" label="Last known status" value="0">
<Help>What to do with lamp status when power applied. If 0x00: Always switch light off when power applied. If > 0x00: Switch lamp on/off depending on last known lampstatus before power was disconnected.</Help>
</Value>
<Value type="byte" genre="config" instance="1" index="15" label="Fading down speed" value="1">
<Help>The speed of fading up when activated (manual and RF). Fade speed is 1% per value (* 10 ms)</Help>
</Value>
</CommandClass>
<!-- Association Groups -->