Okay, so what is this project really?
This project is my attempt at reading through OpenConnectivityFoundation's OIC Specification v1.1 and implementing required features on the ESP32.
I chose the ESP32 as it's cheap, with lots of community support and supports both Bluetooth, Wifi and hardware encryption. This makes the device extremely ideal for building a platform that allows the end user to quickly provision the device in their home network using just their smartphone.
For example. when powering on the device for the first time, you may pair with the device using Bluetooth. From there an app on your smartphone will tell the device the WiFi credentials, who owns the device and passes along any security information required for accepting communications from or to adjacent devices on the network.
OIC spec is a Machine2Machine interface. requiring an app that is aware of OIC to discover the device, what resources it has and how to present the end user with pretty eye-candy controls for their device.