Skip to content

Repository files navigation

Disclaimer: If you are under NDA with ZenSYS, although I wish I could, I cannot use your input. I want this to be an open definition of ZWave clear of NDA.

If you are not under NDA and you see any errors or have anything to add I welcome your input. I will be glad to incorporate any pull requests you may offer or review any issues you choose to create.

ZWave Serial API Sniffing Journal

These are my notes About ZWave mostly compiled with RaZberry, Open ZWave, and a lot of Google-ing. See the bottom of this file for a list of the most helpful resources that are not inline linked.

Updates

2014 Aug 18 - HackRF has arrived and now I have raw RF 908.42 MHz samples of ZWave devices. Next step is to work on GFSK decoder.

2013 Aug 13 - I am now backing the HackRF on KickStarter. The goal is to apply my learnings to decoding the RF part of ZWave.

I have been asked why am I doing this. My answer is two fold:

  1. I want to make sure that my new favorite technology is secure. I don't want someone able to unlock my door because I am using ZWave. I feel I can accomplish this more throughly if I am open about my knowledge and others are open about theirs.
  2. I Want to be able to do things that currently are not available in any of the ZWave services. First I want to fully understand ZWave then I want to create cool apps and hardware that leverage that knowledge.

Questions To Be Answered:

Now I feel I have a good grasp on the Application Layer Serial protocol and just need to finish documenting it. Here are some of my next big questions:

  • How can I get the ZWave ZM3102 into "promiscuous" mode so I can see all OTA traffic?
  • How hard would it be to make my own OTA sniffer?
  • Can I take apart a zwave device and repurpose it as a sniffer?
  • I have found some views from ZNiffer on Youtube. How can I get more examples of decoded ZWave to verify my decodes are accurate?
  • There are a lot of really cruddy databases of ZWave devices. Should I create one that is maintainable by the community?

RaZberry

A RaZberry hardware solution is a combination of the [Raspberry Pi] 2 motherboard and the [RaZberry] 2 Z-Wave transceiver daughter board. The daughter board is connected to the mother-board using the General IO Pin header connector of Raspberry PI. This GPIO interface offers Serial TX and RX signals, ground and 3.3 V VCC to power the Z-Wave transceiver board.

The RaZberry uses the ZM3102 Z-Wave transceiver from [SIGMA DESIGNS] 4. This module combines a "System on Chip" (SOC) with a 8051 micro controller, the Z-Wave transceiver and some IO interfaces the systems crystal and the SAW antenna filter.

The micro controller of the SOC contains control code that operates the wireless transceiver and handles certain network level operations of Z-Wave. The communication with this code runs over the serial interface. There is a protocol specification for this interface that is issued by the Manufacturer of the Z-Wave chip Sigma Designs that most of the [Z-Wave transceivers] 5 on the market (e.g., USB Sticks) use. This interface specification — called Sigma Designs Serial API - is not a public document but available under Non Disclosure Agreement only as part of the Sigma Designs Systems Development Kit (SDK). The firmware of RaZberry is based on the SDK Version 4.54 but has enhanced the Sigma Designs Serial API in several ways.

Almond+

I am a backer at the life-time service level of the KickStarter project [Almond+] 6. I can't wait to get my hands on this product. I have very high hopes for this project.

ZWave

Thanks to the folks over at the OpenZwave project I found out that the basis of ZWave is an ITU standard. A little Googling and it appears the standard of interest is ITU-T G.9959 (http://www.itu.int/rec/T-REC-G.9959/en).

Have I mentioned that I love the project Open-ZWave?

Thoughts on Application Design

I have written my fair share of Wireshark dissectors but I have always had Wireshark to do the display of those captures.

Creating a ZWave sniffer will require the dissector but it will also require some user interface. This may be best split into to project. Similar to TShark (or tcpdump) that does the capture and the user interface application. Initially the UI will just dump to the console or to a file.

or

Maybe I can sort out someway to save the capture in PCAP format and still use Wireshark to decode it?

Future Goals

I would like to make a ZWave decoder that will monitor the serial line and output human readable information about what is being sent.

ZWave Frames

ZWave Frame

Basic ZWave Frame

|Byte Position: |0|1|3|4|…| N| |---|---|---|---|---|---|---|---|---|---|---|---| | Field: |Header|Length|Type (Request 0x00 or Response 0x01)|Command - ZWave Function (see ZWave Functions below)| Data … | Checksum|

ZWave Sample Decodes

See Also:

  • binarySwitchSamples.md
  • BinaryMotionSensorSamples.md
  • OtherSample.md

Generating a checksum

privatestaticbytegenerateChecksum(byte[] dataFrame) {
intoffset = 0; // Initialize this to 0xFF and no need to NOT result belowbyteret = data[offset];
for (inti = offset; i < data.length; i++) {
// Xor bytesret ^= data[i];
}
ret = (byte) (~ret);
returnret;
}
Usage:
byte[] zwaveFrame = newbyte[] {0x01, 0x03, 0x20, /* (byte) 0xdc, */};
System.out.println("==============> Checksum: 0x" + Integer.toHexString(EIMApplication.generateChecksum(zwaveFrame)));

Device Classes

To allow inter-operability between different Z-Wave devices from different manufacturers, each device must include certain well-defined functions above and beyond the ‘Basic’ command class.

These requirements are called ‘Device Classes’. A device class refers to a typical device and defines which command classes that are mandatory for it to support.

Device classes are organized into a three-layer hierarchy:

Every device must belong to a basic device class Devices can be further specified by assigning them to a generic device class Further functionality can be defined by assigning the device to a specific device class Basic Device Class The ‘Basic’ device class simply defines a device as a Controller, Slave or Routing Slave. Therefore every device belongs to one basic device class.

Generic Device Class The ‘Generic’ device class defines the basic functionality that the devices will support as a controller or slave. Current ‘Generic’ device classes are:

Hex ValueValueDescriptionKey
0x011General controllerBASIC TYPE CONTROLLER
0x022Static cont rollerSTATIC CONTROLLER
0x033BASIC TYPE SLAVE
0x044BASIC TYPE ROUTING SLAVE
0x088ThermostatGENERIC TYPE THERMOSTAT
0x1016Binary switchBINARY SWITCH
0x1117Multi level switchMULTI LEVEL SWITCH
0x1218GENERIC TYPE SWITCH REMOTE
0x1319GENERIC TYPE SWITCH TOGGLE
0x1723GENERIC TYPE SECURITY PANEL
0x2032Binary sensorBINARY SENSOR
0x2133Multilevel-SensorMULTILEVEL SENSOR
0x3149MeterMETER
64GENERIC TYPE ENTRY CONTROL

Specific Device Class

Assigning a ‘Specific’ device class to a Z-Wave device allows it to further specify its functionality. Each ‘Generic’ device class refers to a number of specific device classes. You can decide to assign a specific device class, however, it only makes sense if the device really supports all functions of a ‘Specific’ device class.

Table: 0x01 – 0x1F ZWave Protocol Commands

NameHexDec
NO OPERATION0x000
NODE INFO0x011
REQUEST NODE INFO0x022
ASSIGN IDS0x033
FIND NODES IN RANGE0x044
GET NODES IN RANGE0x055
RANGE INFO0x066
CMD COMPLETE0x077
TRANSFER PRESENTATION0x088
TRANSFER NODE INFO0x099
TRANSFER RANGE INFO0x0A10
TRANSFER END0x0B11
ASSIGN RETURN ROUTE0x0C12
NEW NODE REGISTERED0x0D13
NEW RANGE REGISTERED0x0E14
TRANSFER NEW PRIMARY COMPLETE0x0F15
AUTOMATIC CONTROLLER UPDATE START0x1016
SUC NODE ID0x1117
SET SUC0x1218
SET SUC ACK0x1319
ASSIGN SUC RETURN ROUTE0x1420
STATIC ROUTE REQUEST0x1521
LOST0x1622
ACCEPT LOST0x1723
NOP POWER0x1824
RESERVE NODE IDS0x1925
RESERVED IDS0x1A26
UNKNOWN0x1B-0x1F27-31

Table: ZWave Command Classes

A Command Class can contain up to 255 different Commands.

NOTE:If the Command Class field is set to 0xF1 - 0xFF then there is another Command Class byte added. This allows for future extensions of the Command Classes. The strategy of having an Extended Command Class followed by the actual command identifier provides the possibility of having more than 4000 Command Classes.

NameHexDec
BASIC0x2032
CONTROLLER REPLICATION0x2133
APPLICATION STATUS0x2234
ZIP SERVICES0x2335
ZIP SERVER0x2436
SWITCH BINARY0x2537
SWITCH MULTILEVEL0x2638
SWITCH MULTILEVEL V20x2638
SWITCH ALL0x2739
SWITCH TOGGLE BINARY0x2840
SWITCH TOGGLE MULTILEVEL0x2941
CHIMNEY FAN0x2A42
SCENE ACTIVATION0x2B43
SCENE ACTUATOR CONF0x2C44
SCENE CONTROLLER CONF0x2D45
ZIP CLIENT0x2E46
ZIP ADV SERVICES0x2F47
SENSOR BINARY0x3048
SENSOR MULTILEVEL0x3149
SENSOR MULTILEVEL V20x3149
METER0x3250
ZIP ADV SERVER0x3351
ZIP ADV CLIENT0x3452
METER PULSE0x3553
METER TBL CONFIG0x3C60
METER TBL MONITOR0x3D61
METER TBL PUSH0x3E62
THERMOSTAT HEATING0x3856
THERMOSTAT MODE0x4064
THERMOSTAT OPERATING STATE0x4266
THERMOSTAT SETPOINT0x4367
THERMOSTAT FAN MODE0x4468
THERMOSTAT FAN STATE0x4569
CLIMATE CONTROL SCHEDULE0x4670
THERMOSTAT SETBACK0x4771
TARIF CONFIG0x4A74
TARIF TABLE MONITOR0x4B75
COMMAND CLASS DOOR LOCK LOGGING0x4C76
SCHEDULE ENTRY LOCK0x4E78
ZIP 6LOWPAN0x4F79
BASIC WINDOW COVERING0x5080
MTP WINDOW COVERING0x5181
MULTI CHANNEL V20x6096
MULTI INSTANCE0x6096
DOOR LOCK0x6298
USER CODE0x6399
CONFIGURATION0x70112
CONFIGURATION V20x70112
ALARM0x71113
MANUFACTURER SPECIFIC0x72114
POWER LEVEL0x73115
PROTECTION0x75117
PROTECTION V20x75117
LOCK0x76118
NODE NAMING0x77119
FIRMWARE UPDATE MD0x7A122
GROUPING NAME0x7B123
REMOTE ASSOCIATION ACTIVATE0x7C124
REMOTE ASSOCIATION0x7D125
BATTERY0x80128
CLOCK0x81129
HAIL0x82130
WAKE UP0x84132
WAKE UP V20x84132
ASSOCIATION0x85133
ASSOCIATION V20x85133
VERSION0x86134
INDICATOR0x87135
PROPRIETARY0x88136
LANGUAGE0x89137
TIME0x8A138
TIME PARAMETERS0x8B139
GEOGRAPHIC LOCATION0x8C140
COMPOSITE0x8D141
MULTI CHANNEL ASSOCIATION V20x8E142
MULTI INSTANCE ASSOCIATION0x8E142
MULTI CMD0x8F143
ENERGY PRODUCTION0x90144
MANUFACTURER PROPRIETARY0x91145
SCREEN MD0x92146
SCREEN MD V20x92146
SCREEN ATTRIBUTES0x93147
SCREEN ATTRIBUTES V20x93147
SIMPLE AV CONTROL0x94148
AV CONTENT DIRECTORY MD0x95149
AV RENDERER STATUS0x96150
AV CONTENT SEARCH MD0x97151
SECURITY0x98152
AV TAGGING MD0x99153
IP CONFIGURATION0x9A154
ASSOCIATION COMMAND CONFIGURATION0x9B155
SENSOR ALARM0x9C156
SILENCE ALARM0x9D157
SENSOR CONFIGURATION0x9E158
MARK0xEF239
NON INTEROPERABLE0xF0240
EXTENDED APPLICATION COMMANDS0xF1 – 0xFF241 - 255

Table: ZWave Basic

NameHexDec
VERSION0x011
SET0x011
GET0x022
REPORT0x033

Table: ZWave Thermostat Setpoint

NameHexDec
VERSION0x011
SET0x011
GET0x022
REPORT0x033
SUPPORTED GET0x044
SUPPORTED REPORT0x055

Table: ZWave Wake Up

NameHexDec
VERSION0x011
INTERVAL SET0x044
INTERVAL GET0x055
INTERVAL REPORT0x066
NOTIFICATION0x077

Table: ZWave Multi

NameHexDec
VERSION0x011
ENCAP0x011

Table: ZWave Battery

NameHexDec
VERSION0x011
GET0x022
REPORT0x033

Table: ZWave Transmit Options

NameHexDec
ACK0x011
LOW POWER0x022
AUTO ROUTE0x044
EXPLORE0x2032

Table: ZWave Parameter Types

NameHexDec
BYTE0x011
WORD0x022
DWORD0x033
BIT_240x044
ARRAY0x055
BITMASK0x066
STRUCT_BYTE0x077
ENUM0x088
ENUM_ARRAY0x099
MULTI_ARRAY0x0A10
CONST0x0B11
VARIANT0x0C12
VARIANT_GROUP0x0D13

Node Definitions

<?xml version="1.0" encoding="utf-8"?>
<DeviceClasses>
<Basickey="0x01"label="Controller" />
<Basickey="0x02"label="Static Controller" />
<Basickey="0x03"label="Slave" />
<Basickey="0x04"label="Routing Slave" />
<Generickey="0x01"label="Remote Controller"command_classes="0xef,0x20">
<Specifickey="0x01"label="Portable Remote Controller" />
<Specifickey="0x02"label="Portable Scene Controller"command_classes="0x2d,0x72,0x85,0xef,0x2b" />
<Specifickey="0x03"label="Portable Installer Tool"command_classes="0x21,0x72,0x86,0x8f,0xef,0x21,0x60,0x70,0x72,0x84,0x85,0x86,0x8e" />
</Generic>
<Generickey="0x02"label="Static Controller"command_classes="0xef,0x20">
<Specifickey="0x01"label="Static PC Controller" />
<Specifickey="0x02"label="Static Scene Controller"command_classes="0x2d,0x72,0x85,0xef,0x2b" />
<Specifickey="0x03"label="Static Installer Tool"command_classes="0x21,0x72,0x86,0x8f,0xef,0x21,0x60,0x70,0x72,0x84,0x85,0x86,0x8e" />
</Generic>
<Generickey="0x03"label="AV Control Point"command_classes="0x20">
<Specifickey="0x04"label="Satellite Receiver"command_classes="0x72,0x86,0x94" />
<Specifickey="0x11"label="Satellite Receiver V2"command_classes="0x72,0x86,0x94"basic="0x94" />
<Specifickey="0x12"label="Doorbell"command_classes="0x30,0x72,0x85,0x86"basic="0x30"/>
</Generic>
<Generickey="0x04"label="Display"command_classes="0x20">
<Specifickey="0x01"label="Simple Display"command_classes="0x72,0x86,0x92,0x93" />
</Generic>
<Generickey="0x08"label="Thermostat"command_classes="0x20">
<Specifickey="0x01"label="Heating Thermostat" />
<Specifickey="0x02"label="General Thermostat"command_classes="0x40,0x43,0x72"basic="0x40" />
<Specifickey="0x03"label="Setback Schedule Thermostat"command_classes="0x46,0x72,0x86,0x8f,0xef,0x46,0x81,0x8f"basic="0x46" />
<Specifickey="0x04"label="Setpoint Thermostat"command_classes="0x43,0x72,0x86,0x8f,0xef,0x43,0x8f"basic="0x43" />
<Specifickey="0x05"label="Setback Thermostat"command_classes="0x40,0x43,0x47,0x72,0x86"basic="0x40" />
<Specifickey="0x06"label="General Thermostat V2"command_classes="0x40,0x43,0x72,0x86"basic="0x40" />
</Generic>
<Generickey="0x09"label="Window Covering"command_classes="0x20">
<Specifickey="0x01"label="Simple Window Covering"command_classes="0x50"basic="0x50" />
</Generic>
<Generickey="0x0f"label="Repeater Slave"command_classes="0x20">
<Specifickey="0x01"label="Basic Repeater Slave" />
</Generic>
<Generickey="0x10"label="Binary Switch"command_classes="0x20,0x25"basic="0x25">
<Specifickey="0x01"label="Binary Power Switch"command_classes="0x27" />
<Specifickey="0x03"label="Binary Scene Switch"command_classes="0x27,0x2b,0x2c,0x72" />
</Generic>
<Generickey="0x11"label="Multilevel Switch"command_classes="0x20,0x26"basic="0x26">
<Specifickey="0x01"label="Multilevel Power Switch"command_classes="0x27" />
<Specifickey="0x03"label="Multiposition Motor"command_classes="0x72,0x86" />
<Specifickey="0x04"label="Multilevel Scene Switch"command_classes="0x27,0x2b,0x2c,0x72" />
<Specifickey="0x05"label="Motor Control Class A"command_classes="0x25,0x72,0x86" />
<Specifickey="0x06"label="Motor Control Class B"command_classes="0x25,0x72,0x86" />
<Specifickey="0x07"label="Motor Control Class C"command_classes="0x25,0x72,0x86" />
</Generic>
<Generickey="0x12"label="Remote Switch"command_classes="0xef,0x20">
<Specifickey="0x01"label="Binary Remote Switch"command_classes="0xef,0x25"basic="0x25"/>
<Specifickey="0x02"label="Multilevel Remote Switch"command_classes="0xef,0x26"basic="0x26"/>
<Specifickey="0x03"label="Binary Toggle Remote Switch"command_classes="0xef,0x28"basic="0x28"/>
<Specifickey="0x04"label="Multilevel Toggle Remote Switch"command_classes="0xef,0x29"basic="0x29"/>
</Generic>
<Generickey="0x13"label="Toggle Switch"command_classes="0x20" >
<Specifickey="0x01"label="Binary Toggle Switch"command_classes="0x25,0x28"basic="0x28" />
<Specifickey="0x02"label="Multilevel Toggle Switch"command_classes="0x26,0x29"basic="0x29" />
</Generic>
<Generickey="0x14"label="Z/IP Gateway"command_classes="0x20">
<Specifickey="0x01"label="Z/IP Tunneling Gateway"command_classes="0x23,0x24,0x72,0x86"/>
<Specifickey="0x02"label="Z/IP Advanced Gateway"command_classes="0x23,0x24,0x2f,0x33,0x72,0x86"/>
</Generic>
<Generickey="0x15"label="Z/IP Node">
<Specifickey="0x01"label="Z/IP Tunneling Node"command_classes="0x23,0x2e,0x72,0x86" />
<Specifickey="0x02"label="Z/IP Advanced Node"command_classes="0x23,0x2e,0x2f,0x34,0x72,0x86" />
</Generic>
<Generickey="0x16"label="Ventilation"command_classes="0x20">
<Specifickey="0x01"label="Residential Heat Recovery Ventilation"command_classes="0x37,0x39,0x72,0x86"basic="0x39"/>
</Generic>
<Generickey="0x20"label="Binary Sensor"command_classes="0x30,0xef,0x20"basic="0x30">
<Specifickey="0x01"label="Routing Binary Sensor" />
</Generic>
<Generickey="0x21"label="Multilevel Sensor"command_classes="0x31,0xef,0x20"basic="0x31">
<Specifickey="0x01"label="Routing Multilevel Sensor" />
</Generic>
<Generickey="0x30"label="Pulse Meter"command_classes="0x35,0xef,0x20"basic="0x35"/>
<Generickey="0x31"label="Meter"command_classes="0xef,0x20">
<Specifickey="0x01"label="Simple Meter"command_classes="0x32,0x72,0x86"basic="0x32" />
</Generic>
<Generickey="0x40"label="Entry Control"command_classes="0x20">
<Specifickey="0x01"label="Door Lock"command_classes="0x62"basic="0x62"/>
<Specifickey="0x02"label="Advanced Door Lock"command_classes="0x62,0x72,0x86"basic="0x62"/>
<Specifickey="0x03"label="Secure Keypad Door Lock"command_classes="0x62,0x63,0x72,0x86,0x98"basic="0x62"/>
</Generic>
<Generickey="0x50"label="Semi Interoperable"command_classes="0x20,0x72,0x86,0x88">
<Specifickey="0x01"label="Energy Production"command_classes="0x90" />
</Generic>
<Generickey="0xa1"label="Alarm Sensor"command_classes="0xef,0x20"basic="0x71">
<Specifickey="0x01"label="Basic Routing Alarm Sensor"command_classes="0x71,0x72,0x85,0x86,0xef,0x71" />
<Specifickey="0x02"label="Routing Alarm Sensor"command_classes="0x71,0x72,0x80,0x85,0x86,0xef,0x71" />
<Specifickey="0x03"label="Basic Zensor Alarm Sensor"command_classes="0x71,0x72,0x86,0xef,0x71" />
<Specifickey="0x04"label="Zensor Alarm Sensor"command_classes="0x71,0x72,0x80,0x86,0xef,0x71" />
<Specifickey="0x05"label="Advanced Zensor Alarm Sensor"command_classes="0x71,0x72,0x80,0x85,0x86,0xef,0x71" />
<Specifickey="0x06"label="Basic Routing Smoke Sensor"command_classes="0x71,0x72,0x85,0x86,0xef,0x71" />
<Specifickey="0x07"label="Routing Smoke Sensor"command_classes="0x71,0x72,0x80,0x85,0x86,0xef,0x71" />
<Specifickey="0x08"label="Basic Zensor Smoke Sensor"command_classes="0x71,0x72,0x86,0xef,0x71" />
<Specifickey="0x09"label="Zensor Smoke Sensor"command_classes="0x71,0x72,0x80,0x86,0xef,0x71" />
<Specifickey="0x0a"label="Advanced Zensor Smoke Sensor"command_classes="0x71,0x72,0x80,0x85,0x86,0xef,0x71" />
</Generic>
<Generickey="0xff"label="Non Interoperable" />
</DeviceClasses>

Device Class

ZWave Functions

NameValue
None0x00
DiscoveryNodes0x02
SerialApiApplNodeInformation0x03
ApplicationCommandHandler0x04
GetControllerCapabilities0x05
SerialApiSetTimeouts0x06
SerialGetCapabilities0x07
SerialApiSoftReset0x08
SetRFReceiveMode0x10
SetSleepMode0x11
SendNodeInformation0x12
SendData0x13
SendDataMulti0x14
GetVersion0x15
SendDataAbort0x16
RFPowerLevelSet0x17
SendDataMeta0x18
MemoryGetId0x20
MemoryGetByte0x21
MemoryPutByte0x22
MemoryGetBuffer0x23
MemoryPutBuffer0x24
ReadMemory0x23
ClockSet0x30
ClockGet0x31
ClockCompare0x32
RtcTimerCreate0x33
RtcTimerRead0x34
RtcTimerDelete0x35
RtcTimerCall0x36
GetNodeProtocolInfo0x41
SetDefault0x42
ReplicationCommandComplete0x44
ReplicationSendData0x45
AssignReturnRoute0x46
DeleteReturnRoute0x47
RequestNodeNeighborUpdate0x48
ApplicationUpdate0x49
AddNodeToNetwork0x4a
RemoveNodeFromNetwork0x4b
CreateNewPrimary0x4c
ControllerChange0x4d
SetLearnMode0x50
AssignSucReturnRoute0x51
EnableSuc0x52
RequestNetworkUpdate0x53
SetSucNodeId0x54
DeleteSucReturnRoute0x55
GetSucNodeId0x56
SendSucId0x57
RediscoveryNeeded0x59
RequestNodeInfo0x60
RemoveFailedNodeId0x61
IsFailedNode0x62
ReplaceFailedNode0x63
TimerStart0x70
TimerRestart0x71
TimerCancel0x72
TimerCall0x73
GetRoutingTableLine0x80
GetTXCounter0x81
ResetTXCounter0x82
StoreNodeInfo0x83
StoreHomeId0x84
LockRouteResponse0x90
SendDataRouteDemo0x91
SerialApiTest0x95
SerialApiSlaveNodeInfo0xa0
ApplicationSlaveCommandHandler0xa1
SendSlaveNodeInfo0xa2
SendSlaveData0xa3
SetSlaveLearnMode0xa4
GetVirtualNodes0xa5
IsVirtualNode0xa6
SetPromiscuousMode0xd0

Table: Preambles used see "man ascii"

NameHexDecDescription
SOF0x011Start Of Frame
ACK0x066Message Ack
NAK0x1521Message NAK
CAN0x1824Cancel - Resend request

Capturing serial port data

Install "interceptty".

# Usage:# Stop Z-Way process "sudo /etc/init.d/Z-Way stop"# > sudo vi /opt/z-way-server/config.xml# change "/dev/ttyAMA0" to "/tmp/ttyAMA0"# Run this script# Start Z-Way "sudo /etc/init.d/Z-Way start"
interceptty -s 'ispeed 115200 ospeed 115200' /dev/ttyAMA0 /tmp/ttyAMA0

Once you are done sniffing the serial port you will need to stop the Z-Way server and change "config.xml" back to it's original form.

JSON Server

Z-Way makes a server for Raspberry PI and RaZberry.

Terms

TermDescription
FLIRSFrequently Listening Devices
NIFNode Information Frame
SISStatic ID-Server
SOFStart Of Frame
SUCStatic Update Controller

More ZWave References

About

Notes About ZWave and RazBerry

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages