Getting Started as a Developer
The Unify Developer Guide contains a lot of useful information for Unify developers.
The Unify Build Guide is the best starting point for working with the source code.
The Unify User Guide contains helpful tips on debugging within Unify.
Development Platform Recommendations
The Unify reference platform is a Raspberry Pi 4 however it is understood that users may not wish to run on a Raspberry Pi in a final product. Porting to Debian based linux should be straightforward.
System requirements for flash, RAM, and dependencies are listed at here
Developing IoT Services
The IoT or cloud connector must use UCL (MQTT) to communicate with the other components of Unify. See How to Develop an IoT service Unify uses MQTT to communicate among each component using the Mosquitto MQTT broker. UCL is the format of the MQTT messages. The Unify Framework Specification contains the definitions for UCL.
Also see UCL MQTT API
Developing protocol controllers
See How to Develop a Protocol Controller
The attribute mapper helps to translate protocol commands to UCL MQTT messages. See How to write UAM files
Extend UCL clusters
See How to write a new Cluster
It might be needed for non-zigbee controllers if some description are missing.
Overview of relations among Unify Applications
The Unify Framework consists of several applications including Protocol Controllers, IoT Services (e.g. Developer GUI, UPTICap) and multiple application services that facilitate various functionalities such as SmartStart Provisioning, Group Management, Name and Location Service and OTA Image Provider.
The following table presents the relationship amongst Unify Framework applications and the Unify Protocol Controllers. If a given component is supported via a Protocol Controller, it will be marked as [x].
ZPC | ZigPC | AoXPC | |
---|---|---|---|
UPVL | [x] | [x] | |
GMS | [x] | [x] | |
NAL | [x] | [x] | [x] |
OTA Image Provider | [x] | [x] | |
Dev GUI | [x] | [x] | [x] |
UPTICap | [x] | [x] | |
UPTIWriter | [x] | [x] | |
AoX Positioning | [x] |