Basic endpoints

User profile

Login

Request URL:

POST /auth/login

Headers:

Content-Type: application/json

Body:

{
  "client_id" : "",
  "client_secret" : "",
  "username" : "",
  "password" : ""
}

Response:

{
    "auth": {
        "access_token": "1e516******************************ca",
        "expires_in": 86400,
        "token_type": "Bearer",
        "scope": null,
        "refresh_token": "e8ec5********************************26b3"
    },
    "_links": {
        "self": {
            "href": "/v1/auth/login"
        }
    }
}

Renew Access Token

Request URL:

POST /auth/renew

Headers:

Content-Type: application/json

Body:

{
  "client_id" : "",
  "client_secret" : "",
  "refresh_token" : ""
}

Response:

{
    "auth": {
        "access_token": "44******************23263e59d3c5a3",
        "expires_in": 86400,
        "token_type": "Bearer",
        "scope": null
    },
    "_links": {
        "self": {
            "href": "/v1/auth/renew"
        }
    }
}

Fetch Personal Info

Request URL:

GET /users/me

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}
Accept-Response: Advanced

Response:

{
    "users": {
        "user_id": ,
        "username": "",
        "firstname": "",
        "lastname": "",
        "phone": null,
        "country_id": ,
        "created": "2",
        "_relation": {
            "country": {
                "id": ,
                "geoname_id": ,
                "continent_code": "",
                "continent_name": "",
                "country_code": "",
                "country_name": "",
                "city_name": "",
                "time_zone": ""
            }
        }
    },
    "_links": {
        "self": {
            "href": "/v1/users"
        },
        "controller": {
            "href": "/v1/controller/{serial_number}",
            "templated": true
        }
    }
}

Controllers

Fetch user’s controllers

Request URL:

GET /controllers

Optional params: type={device type} (melissa; bobbie; smart_plug...) & mac={device mac}

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Response:

{
  "_embedded": {
    "controller": [
      {
        "user_id": 200,
        "serial_number": "H5******J6X",
        "mac": "“ACCF***6522E\"",
        "firmware_version": "V1SHTHF",
        "name": "Melissa H59****X",
        "type": "melissa",
        "room_id": 7,
        "online": false,
        "brand_id": 9,
        "controller_log": [],
        "_links": {
          "self": {
            "href": "/v1/controllers/H59I****6X"
          }
        }
      },
      {…},
	 {…},
	 {…},

    ]
  },
  "total": 22,
  "_links": {
    "self": {
      "href": "/v1/controllers"
    },
    "first": {
      "href": "/v1/controllers?page=1"
    },
    "last": {
      "href": "/v1/controllers?page=1"
    }
  }
}

Fetch one controller

Request URL:

GET /controllers/{serial_number}

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Response:

{
    "controller": {
        "user_id": 200,
        "serial_number": "H5******J6X",
        "mac": "ACCF***6522E",
        "firmware_version": "V1SHTHF",
        "name": "Melissa H59****X",
        "type": "melissa",
        "room_id": 7,
        "online": false,
        "brand_id": 9,
        "controller_log": [],
        "_links": {
          "self": {
            "href": "/v1/controllers/H59I****6X"
          }
        }
      },
    "_links": {
        "self": {
            "href": "/v1/controllers/H5******J6X"
        }
    }
}

Controller Assign

Request URL:

POST /controllers/{serial_number}/assign

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Response:

{
    "controller_reassign": {
        "id": 1***,
        "user_id": 200,
        "serial_number": "H5******J6X",
        "mac": "ACCF***6522E",
        "firmware_version": "V1SHTHF",
        "name": "Melissa H59****X",
        "type": "melissa",
        "device_group": "mclimate",
        "status_push": 0,
        "room_id": null,
        "created": "2016-04-12 11:25:47",
        "assigned_at": "2020-11-20 15:19:29",
        "deleted_at": null
    },
    "_links": {
        "self": {
            "href": "/v1/controllers/H5******J6X/assign"
        }
    }
}

Controller Reassign

Request URL:

PATCH /controllers/{serial_number}/reassign

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
  "owner" : "n*****@s******a.com"
}

Response:

{
    "controller_reassign": {
        "id": 1***,
        "user_id": 200,
        "serial_number": "H5******J6X",
        "mac": "ACCF***6522E",
        "firmware_version": "V1SHTHF",
        "name": "Melissa H59****X",
        "type": "melissa",
        "device_group": "mclimate",
        "status_push": 0,
        "room_id": null,
        "created": "2016-04-12 11:25:47",
        "assigned_at": "2020-11-20 15:19:29",
        "deleted_at": null
    },
    "_links": {
        "self": {
            "href": "/v1/controllers/H5******J6X/assign"
        }
    }
}

MClimate LoRaWAN Products

If you are interested in our LoRaWAN devices, you can find more information here.

Last updated