/home-automation

A simple, non-production ready home automation app built around the themes of Python/Flask, wannabe MSA using Docker-compose and REST

Primary LanguagePython

Courtesy of Jake Wright

Device Registry Service

Usage

All responses will have the form

{
    "data": "Mixed type holding the content of the response",
    "message": "Description of what happened"
}

Subsequent response definitions will only detail the expected value of the data field

List all devices

Definition

GET /devices

Response

  • 200 OK on success
[
    {
        "identifier": "floor-lamp",
        "name": "Floor Lamp",
        "device_type": "switch",
        "controller_gateway": "192.1.68.0.2"
    },
    {
        "identifier": "samsung-tv",
        "name": "Living Room TV",
        "device_type": "tv",
        "controller_gateway": "192.168.0.9"
    }
]

Registering a new device

Definition

POST /devices

Arguments

  • "identifier":string a globally unique identifier for this device
  • "name":string a friendly name for this device
  • "device_type":string the type of the device as understood by the client
  • "controller_gateway":string the IP address of the device's controller

If a device with the given identifier already exists, the existing device will be overwritten.

Response

  • 201 Created on success
{
    "identifier": "floor-lamp",
    "name": "Floor Lamp",
    "device_type": "switch",
    "controller_gateway": "192.1.68.0.2"
}

Lookup device details

GET /device/<identifier>

Response

  • 404 Not Found if the device does not exist
  • 200 OK on success
{
    "identifier": "floor-lamp",
    "name": "Floor Lamp",
    "device_type": "switch",
    "controller_gateway": "192.1.68.0.2"
}

Delete a device

Definition

DELETE /devices/<identifier>

Response

  • 404 Not Found if the device does not exist
  • 204 No Content on success