Action Item #508
Add IoT messaging to PiBox protocol
|Status:||Closed||Start date:||09 Mar 2016|
|Target version:||001 - Proof of concept|
|Severity:||01 - Critical|
- device type
- device features
- device states
There are probably others. It's not clear if the protocol should send lightweight messages and let the endpoints decipher or if the message should be self-defining. The latter seems better, using JSON underneath (the parson library recently added to piboxd). The problem is that the device itself may not be able to use the library easily. There may be some json libraries for the ESP8266. I'll have to check on that.
This is required to support the iotapp display and control via piboxd.
#1 Updated by Hammel almost 3 years ago
- % Done changed from 0 to 10
Looks like there are JSON APIs in the SDK: http://esp8266.ru/download/esp8266-doc/ESP8266_IoT_SDK_Programming%20Guide_v0.9.1.pdf. It's not clear how to call them from the Arduino environment.
There is also this library: https://github.com/bblanchon/ArduinoJsonThe way this should work would be:
- Device registers with piboxd
- piboxd asks for config data (in JSON) and stores it
- iotapp asks for config data from piboxd
- iotapp returns updated json config data to piboxd
- piboxd forwards json data to device
The format of the JSON data will determine what a field is: numeric, text, etc. That will define how iotapp will display it.
Future support for graphing time-based data will required a thread in iotapp to retrieve data in the background. It will not be piboxd's responsibility to handle time based data.
#3 Updated by Hammel almost 3 years ago
- Status changed from New to Closed
- % Done changed from 10 to 100
The protocol design is updated on the wiki.
The protocol is implemented in piboxd and tested with the unit test script (tests/server.sh). It appears to be working fine.
Cod is tested, committed and pushed.