imrest is a RESTful Web Server based on Mongoose that provides encrypted messaging between Ironman sensors, Ironman
Jarvis voice control and the Ironman monitor that runs on a PiBox server.

Michael J. Hammel 492cae7e97 General: Moved README to README.md so it shows up properly on web UI for преди 3 седмици
data 5e0ba5310d RM #1006: Add /monitor API support and unit test. преди 3 месеца
docs ede49ab0dc Initial commit преди 3 месеца
opkg b6af82a160 RM #1006: Remove test tools from install package. преди 3 месеца
src 1bbd5d9998 RM #1006: Fix URI matching for IoT/Jarvis pairing. преди 3 месеца
tests 1bbd5d9998 RM #1006: Fix URI matching for IoT/Jarvis pairing. преди 3 месеца
AUTHORS ede49ab0dc Initial commit преди 3 месеца
COPYING ede49ab0dc Initial commit преди 3 месеца
ChangeLog ede49ab0dc Initial commit преди 3 месеца
INSTALL ede49ab0dc Initial commit преди 3 месеца
LICENSE 1bbd5d9998 RM #1006: Fix URI matching for IoT/Jarvis pairing. преди 3 месеца
Makefile.am e6b68e9212 RM #1006: Bug fixes for tests of /set/device API implementation. преди 3 месеца
NEWS ede49ab0dc Initial commit преди 3 месеца
README.md 492cae7e97 General: Moved README to README.md so it shows up properly on web UI for преди 3 седмици
configure.ac e6b68e9212 RM #1006: Bug fixes for tests of /set/device API implementation. преди 3 месеца
cross.sh 4078fed742 RM #1006: Fix packaging and cross build. преди 3 месеца
version.txt 4aa2856dcc RM #1006: Complete port of crypto and add initial porting of device from преди 3 месеца

README.md

imrest

imrest is a RESTful Web Server based on Mongoose that provides encrypted messaging between Ironman sensors, Ironman Jarvis voice control and the Ironman monitor that runs on a PiBox server.

imrest runs as HTTP (not HTTPS) using a JSON packet that contains an encrypted message. While the JSON packet can be intercepted, the encrypted messages should be difficult to break. The reason for using HTTP is because some Ironman sensors, such as those based on the ESP01 (re: ESP8266), cannot support HTTPS messaging but can perform simpler encryption manually. For the small sized messages that are exchanged this is sufficient.

Ironman REST interface

The format for REST requests is

Version is added to header, as such:

  • Accept-Version: 1.0

Additionally, JSON data may be included. This would be data specific to the cmd.

Method API From ... Description
GET /query/devices From monitor Request Device states from paired IoT nodes
GET /monitor From Jarvis Retrieve monitor description file
POST /pair/iot/ From IoT Node Pair an IoT node with the monitor
POST /pair/jarvis/ From Jarvis Pair a Jarvis instance with the monitor
POST /devices From Jarvis Get list of IoT nodes
POST /set/device From Jarvis Change an IoT node state
POST /ping From IoT Node Verify IoT node registration.
DELETE /set/device From Jarvis or monitor Change an IoT node state