Will Z-Way run on my specific platform?
The core of Z-Way — Z-Way Library — will compile and run on any POSIX-compliant platform as well as Linux, Mac OS X and other Unix-like systems. It also runs on Windows. The full Z-Way solution with home automation engine has more requirements to the OS, CPU and memory, but still runs on most platforms from router-based OpenWRT to advanced desktop and server machines running Linux or Windows.
Z-Way relies on several open-source libraries:
- libarchive (13)
- libxml2 (2)
- libcrypto (1.0)
- libssl (1.0)
- libz (1)
- libv8 (3.24.37) *
- libcurl (4) *
- libwebsockets (8) * (optional, WebSocket support)
- libmosquitto (2) * (optional, MQTT support)
- libcares (2) * (optional, async DNS resolver support)
- libdns_sd (1), libavahi_client (3) * (optional, HomeKit support)
- and their dependencies
* — needed only for full Z-Way solution including HTTP API and JavaScript engine.
Most of them are provided by OS, some requires latest versions to be compiled (like libxml2, libmosquitto and libcrypto). This is ususally not a big deal to do.
But there is one library — libv8 — that requires good knowledge of your CPU to be compiled. Google v8 (https://code.google.com/p/v8/) is a very performant open source JavaScript engine. Z-Way uses it for highlevel JavaScript API and home automation scripting.
Therefore to make sure Z-Way will run on your platform one need to make sure v8 can be compiled and executed on the specific OS/CPU. Since v8 compiles JavaScript code into native code, it is very sensitive to CPU specific options. Even if v8 compiles with wrong compilation parameters, it might not run on your platform crashing with SigIll (illegal instruction signal). This is the most evident symptome of bad compilation parameters.
So, before considering Z-Way as your Z-Wave controller software make sure v8 runs on your platform.
Do I really need this v8 to use Z-Way?
Not really if you only need C API of Z-Way library. Some of our clients are happy to use C-level interface.
But for JavaScript level API and JavaScript home automation scripts you need v8 engine.
How to check is v8 runs on my platform?
Take a copy of v8 source code (we use a specific commit) and compile it. Once done, go to v8/out/XXX.release/
and run d8
binary. If it runs, your platform is 99% supported by Z-Way. If not, read further. May be some advices would help you.
The snipplet below shows commands you need to execute for most common cases.
git clone https://github.com/v8/v8 (cd v8 && git checkout 3606220e348799e7b5332d191a456bfd4ab67df1) make -C v8 dependencies LINK="g++" LD="g++" make -C v8 i18nsupport=off library=shared x64.release
Change x64 to ia32 or arm or mipsel depending on your CPU. MIPS big endian is not supported by v8, but we have our own port to this platform tested on some CPUs. Please contact us if you need MIPS big endian.
Z-Way C API Quick Develop Introduction
Z-Way C library Quick Develop Intro will help you to build your Z-Way-based application.
Contact us to get help if you consider Z-Way or Z-Way Library for your platform.