|
| 1 | +# Hướng Dẫn Sử Dụng IoT Cloud MCP Server |
| 2 | + |
| 3 | +## Giới Thiệu |
| 4 | + |
| 5 | +**IoT Cloud MCP Server** là máy chủ Model Context Protocol (MCP) chuyên nghiệp giúp kết nối các trợ lý AI (Claude, ChatGPT) với hệ thống IoT Cloud REST API. Server này cho phép bạn quản lý và điều khiển các thiết bị IoT thông qua giao diện chat tự nhiên. |
| 6 | + |
| 7 | +### Tính Năng Chính |
| 8 | + |
| 9 | +- 🔐 **Xác thực đơn giản**: Đăng nhập qua email/password, không cần cấu hình API key phức tạp |
| 10 | +- 🏠 **Quản lý thiết bị IoT**: Xem danh sách, trạng thái, và điều khiển thiết bị |
| 11 | +- 📍 **Quản lý vị trí**: Tổ chức thiết bị theo địa điểm (nhà, phòng, tòa nhà...) |
| 12 | +- 👥 **Quản lý nhóm**: Gom các thiết bị thành nhóm để điều khiển đồng loạt |
| 13 | +- 🔍 **Tìm kiếm thông minh**: Tìm thiết bị, vị trí, nhóm theo từ khóa |
| 14 | +- ⚡ **Điều khiển thiết bị**: Bật/tắt, điều chỉnh độ sáng, nhiệt độ, màu sắc... |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +## Cài Đặt Kết Nối |
| 19 | + |
| 20 | +### Link MCP Server |
| 21 | + |
| 22 | +| Môi trường | URL | |
| 23 | +|-----------|---------------------------------------| |
| 24 | +| Production | `https://mcp.dash.id.vn/api/mcp` | |
| 25 | +| Staging | `https://mcp-stag.dash.id.vn/api/mcp`| |
| 26 | + |
| 27 | +### 1. Kết Nối với Claude Desktop |
| 28 | + |
| 29 | +**Video hướng dẫn:** https://youtu.be/6ZVRJKw5q9g?si=EjeZAMqQrNYLgwVH&t=386 |
| 30 | + |
| 31 | +### 2. Kết Nối với ChatGPT Web |
| 32 | + |
| 33 | +**Các bước:** |
| 34 | + |
| 35 | +1. Truy cập: https://chatgpt.com/#settings/Connectors |
| 36 | +2. Click **"Create App"** hoặc **"Add Connector"** |
| 37 | +3. Chọn **MCP** làm loại connector |
| 38 | +4. Nhập thông tin: |
| 39 | + - **Name**: IoT Cloud (hoặc tên tùy ý) |
| 40 | + - **MCP Server URL**: `https://mcp.dash.id.vn/api/mcp` |
| 41 | +5. Click **Save** hoặc **Connect** |
| 42 | +6. Server đã sẵn sàng sử dụng |
| 43 | + |
| 44 | +--- |
| 45 | + |
| 46 | +## Danh Sách Tools |
| 47 | + |
| 48 | +Server cung cấp **14 tools** được chia thành các nhóm chức năng: |
| 49 | + |
| 50 | +### 🔐 Xác Thực (1 tool) |
| 51 | + |
| 52 | +#### `login` |
| 53 | +- Đăng nhập vào hệ thống IoT Cloud |
| 54 | +- **Bắt buộc gọi đầu tiên** trước khi sử dụng các tools khác |
| 55 | +- Input: `email`, `password` |
| 56 | + |
| 57 | +note: |
| 58 | +- Mỗi server chỉ hỗ trợ 1 project. |
| 59 | +- project staging là **Rogo Life App Dev** (647701793bcdc39e381157ab) |
| 60 | +- project production là **Rogo Life Mobile App** (6476ebbaec05f7cf69a8107f) |
| 61 | + |
| 62 | +=> phải dùng tài khoản trong 2 project này để đăng nhập thành công. |
| 63 | + |
| 64 | +### 🔍 Tìm Kiếm & Khám Phá (2 tools) |
| 65 | + |
| 66 | +#### `search` |
| 67 | +- Tìm kiếm thiết bị, vị trí, nhóm theo từ khóa |
| 68 | +- Hỗ trợ tìm theo tên, mô tả, ID |
| 69 | +- Input: `query` (ví dụ: "phòng khách", "đèn", "AC") |
| 70 | + |
| 71 | +#### `fetch` |
| 72 | +- Lấy thông tin chi tiết theo ID cụ thể |
| 73 | +- Input: `id` (format: `device:uuid`, `location:uuid`, `group:uuid`) |
| 74 | + |
| 75 | +### 📋 Liệt Kê Tài Nguyên (3 tools) |
| 76 | + |
| 77 | +#### `list_devices` |
| 78 | +- Liệt kê **TẤT CẢ** thiết bị IoT |
| 79 | +- Không có filter, trả về toàn bộ danh sách |
| 80 | + |
| 81 | +#### `list_locations` |
| 82 | +- Liệt kê **TẤT CẢ** vị trí (location) |
| 83 | +- Hiển thị cấu trúc tổ chức không gian |
| 84 | + |
| 85 | +#### `list_groups` |
| 86 | +- Liệt kê **TẤT CẢ** nhóm thiết bị |
| 87 | +- Xem thiết bị được phân loại như thế nào |
| 88 | + |
| 89 | +### 🏠 Quản Lý Thiết Bị (3 tools) |
| 90 | + |
| 91 | +#### `get_device` |
| 92 | +- Lấy thông tin chi tiết thiết bị theo UUID |
| 93 | +- Bao gồm: thuộc tính, cấu hình, thông số kỹ thuật |
| 94 | + |
| 95 | +#### `get_device_state` |
| 96 | +- Kiểm tra trạng thái hiện tại của thiết bị theo UUID |
| 97 | +- Hiển thị: bật/tắt, độ sáng, nhiệt độ, màu sắc... |
| 98 | + |
| 99 | +#### `get_device_state_by_mac` |
| 100 | +- Kiểm tra trạng thái thiết bị theo địa chỉ MAC |
| 101 | +- Input: `locationUuid`, `macAddress` |
| 102 | + |
| 103 | +### 📍 Quản Lý Vị Trí & Nhóm (2 tools) |
| 104 | + |
| 105 | +#### `get_location_state` |
| 106 | +- Lấy trạng thái **TẤT CẢ thiết bị** trong một vị trí |
| 107 | +- Hữu ích để xem tổng quan một phòng/tòa nhà |
| 108 | + |
| 109 | +#### `update_device` |
| 110 | +- Cập nhật thông tin thiết bị (tên, mô tả, nhóm...) |
| 111 | +- **Không dùng để điều khiển** thiết bị (bật/tắt) |
| 112 | + |
| 113 | +### ⚡ Điều Khiển Thiết Bị (2 tools) |
| 114 | + |
| 115 | +#### `control_device_simple` |
| 116 | +- Điều khiển thiết bị đơn giản với các lệnh phổ biến: |
| 117 | + - `turn_on`: Bật thiết bị |
| 118 | + - `turn_off`: Tắt thiết bị |
| 119 | + - `set_brightness`: Điều chỉnh độ sáng (0-1000) |
| 120 | + - `set_kelvin`: Nhiệt độ màu (0-65000) |
| 121 | + - `set_temperature`: Nhiệt độ điều hòa (15-30°C) |
| 122 | + - `set_mode`: Chế độ điều hòa (0-4) |
| 123 | + |
| 124 | +#### `control_device` |
| 125 | +- Điều khiển nâng cao với command array |
| 126 | +- Yêu cầu hiểu biết về attribute IDs |
| 127 | +- Dùng cho các tình huống phức tạp |
| 128 | + |
| 129 | +### 🗑️ Quản Lý Nâng Cao (1 tool) |
| 130 | + |
| 131 | +#### `delete_device` |
| 132 | +- Xóa thiết bị vĩnh viễn khỏi hệ thống |
| 133 | +- ⚠️ **Không thể hoàn tác**, sử dụng cẩn thận! |
| 134 | + |
| 135 | +--- |
| 136 | + |
| 137 | +## Quy Trình Sử Dụng Phổ Biến |
| 138 | + |
| 139 | +### 1. 🔐 Đăng Nhập Lần Đầu |
| 140 | + |
| 141 | +``` |
| 142 | +Bạn: "Đăng nhập vào IoT Cloud" |
| 143 | +AI: [Yêu cầu email và password] |
| 144 | +Bạn: "email@example.com / password123" |
| 145 | +AI: [Gọi tool login] ✅ Đăng nhập thành công! |
| 146 | +``` |
| 147 | + |
| 148 | +### 2. 📱 Xem Danh Sách Thiết Bị |
| 149 | + |
| 150 | +``` |
| 151 | +Bạn: "Cho tôi xem tất cả thiết bị" |
| 152 | +AI: [Gọi tool list_devices] |
| 153 | + 📋 Bạn có 10 thiết bị: |
| 154 | + 1. Đèn phòng khách |
| 155 | + 2. Điều hòa phòng ngủ |
| 156 | + 3. ... |
| 157 | +``` |
| 158 | + |
| 159 | +### 3. 🔍 Tìm Thiết Bị Cụ Thể |
| 160 | + |
| 161 | +``` |
| 162 | +Bạn: "Tìm các thiết bị ở phòng khách" |
| 163 | +AI: [Gọi tool search với query="phòng khách"] |
| 164 | + 🔍 Tìm thấy 3 kết quả: |
| 165 | + - Đèn phòng khách |
| 166 | + - Quạt phòng khách |
| 167 | + - ... |
| 168 | +``` |
| 169 | + |
| 170 | +### 4. ⭐ Kiểm Tra Trạng Thái |
| 171 | + |
| 172 | +``` |
| 173 | +Bạn: "Kiểm tra trạng thái đèn phòng khách" |
| 174 | +AI: [Gọi tool get_device_state] |
| 175 | + 💡 Đèn phòng khách: |
| 176 | + - Trạng thái: BẬT |
| 177 | + - Độ sáng: 700/1000 |
| 178 | + - Nhiệt độ màu: 4000K |
| 179 | + - Cập nhật lúc: 14:30:25 |
| 180 | +``` |
| 181 | + |
| 182 | +### 5. ⚡ Điều Khiển Thiết Bị |
| 183 | + |
| 184 | +``` |
| 185 | +Bạn: "Tắt đèn phòng khách" |
| 186 | +AI: [Gọi tool control_device_simple với action="turn_off"] |
| 187 | + ✅ Đã tắt đèn phòng khách |
| 188 | +``` |
| 189 | + |
| 190 | +``` |
| 191 | +Bạn: "Bật đèn và chỉnh độ sáng 50%" |
| 192 | +AI: [Gọi tool control_device_simple 2 lần] |
| 193 | + ✅ Đã bật đèn |
| 194 | + ✅ Đã chỉnh độ sáng về 500/1000 |
| 195 | +``` |
| 196 | + |
| 197 | +### 6. 🏠 Điều Khiển Theo Vị Trí |
| 198 | + |
| 199 | +``` |
| 200 | +Bạn: "Tắt tất cả đèn ở phòng khách" |
| 201 | +AI: [Gọi search → lọc devices → control_device_simple nhiều lần] |
| 202 | + ✅ Đã tắt 3 thiết bị: |
| 203 | + - Đèn trần phòng khách |
| 204 | + - Đèn ngủ |
| 205 | + - Đèn góc đọc sách |
| 206 | +``` |
| 207 | + |
| 208 | +### 7. 🔄 Xác Nhận Thay Đổi |
| 209 | + |
| 210 | +``` |
| 211 | +Bạn: "Kiểm tra lại trạng thái để đảm bảo" |
| 212 | +AI: [Gọi tool get_device_state] |
| 213 | + ✅ Xác nhận: Đèn đã TẮT |
| 214 | + - Cập nhật lúc: 14:35:10 |
| 215 | +``` |
| 216 | + |
| 217 | +--- |
| 218 | + |
| 219 | +## Tips & Lưu Ý |
| 220 | + |
| 221 | +### ✅ Nên Làm |
| 222 | + |
| 223 | +- Luôn **đăng nhập trước** khi sử dụng các tools khác |
| 224 | +- Dùng `search` khi không biết chính xác UUID hoặc MAC |
| 225 | +- Dùng `control_device_simple` cho các thao tác thường gặp (đơn giản hơn) |
| 226 | +- Kiểm tra trạng thái sau khi điều khiển để xác nhận thành công |
| 227 | +- Sử dụng ngôn ngữ tự nhiên, AI sẽ tự hiểu và gọi đúng tool |
| 228 | + |
| 229 | +### ❌ Không Nên |
| 230 | + |
| 231 | +- Gọi `control_device` nâng cao nếu chưa hiểu rõ attribute IDs |
| 232 | +- Dùng `delete_device` nếu không chắc chắn (không thể hoàn tác!) |
| 233 | +- Quên đăng nhập → tất cả tools khác sẽ báo lỗi xác thực |
| 234 | + |
| 235 | +### 💡 Mẹo Hay |
| 236 | + |
| 237 | +- Có thể hỏi AI bằng tiếng Việt hoặc tiếng Anh |
| 238 | +- Nói "thiết bị của tôi", "my devices", "check state"... đều được |
| 239 | +- AI tự động gọi nhiều tools nếu cần (VD: tìm kiếm rồi điều khiển) |
| 240 | +- Trạng thái thiết bị cập nhật qua MQTT, đợi 1-2 giây để kiểm tra lại |
| 241 | + |
| 242 | +--- |
| 243 | + |
| 244 | +## Ví Dụ Thực Tế |
| 245 | + |
| 246 | +### Kịch Bản 1: Điều Khiển Buổi Tối |
| 247 | + |
| 248 | +``` |
| 249 | +Bạn: "Chuẩn bị chế độ xem phim" |
| 250 | +AI: 🎬 Được rồi! |
| 251 | + - Tắt đèn trần phòng khách ✅ |
| 252 | + - Bật đèn led RGB với độ sáng 20% ✅ |
| 253 | + - Màu ánh sáng: Warm White (2700K) ✅ |
| 254 | + - Bật loa soundbar ✅ |
| 255 | +``` |
| 256 | + |
| 257 | +### Kịch Bản 2: Tiết Kiệm Năng Lượng |
| 258 | + |
| 259 | +``` |
| 260 | +Bạn: "Tắt tất cả thiết bị đang bật" |
| 261 | +AI: [Quét toàn bộ devices → lọc state ON → tắt hết] |
| 262 | + 💡 Đã tắt 7 thiết bị: |
| 263 | + - 4 đèn |
| 264 | + - 2 quạt |
| 265 | + - 1 điều hòa |
| 266 | +``` |
| 267 | + |
| 268 | +### Kịch Bản 3: Sáng Tạo Tự Động |
| 269 | + |
| 270 | +``` |
| 271 | +Bạn: "Mỗi sáng 6h, bật đèn phòng ngủ với độ sáng tăng dần" |
| 272 | +AI: ℹ️ MCP Server không hỗ trợ lập lịch tự động. |
| 273 | + Nhưng tôi có thể hướng dẫn bạn cách tạo automation |
| 274 | + trong ứng dụng IoT Cloud hoặc Home Assistant. |
| 275 | +``` |
| 276 | + |
| 277 | +--- |
| 278 | + |
| 279 | +## Hỗ Trợ & Tài Liệu Kỹ Thuật |
| 280 | + |
| 281 | +- **API Reference**: `/docs/api/TOOLS.md` |
| 282 | +- **Control Guide**: `/docs/api/how-to-control-devices.md` |
| 283 | +- **Device Attributes**: `/docs/api/device-attr-and-control.csv` |
| 284 | +- **Quick Start**: `/docs/setup/QUICKSTART.md` |
| 285 | + |
| 286 | +--- |
| 287 | + |
| 288 | +## Câu Hỏi Thường Gặp |
| 289 | + |
| 290 | +**Q: Tại sao tool báo lỗi "Unauthorized"?** |
| 291 | +A: Bạn chưa đăng nhập hoặc token đã hết hạn (1 giờ). Gọi lại tool `login`. |
| 292 | + |
| 293 | +**Q: Tôi có thể điều khiển nhóm thiết bị cùng lúc không?** |
| 294 | +A: Có, dùng `search` hoặc `get_location_state` để lấy danh sách, rồi gọi `control_device_simple` lần lượt. |
| 295 | + |
| 296 | +**Q: Làm sao biết thiết bị hỗ trợ tính năng gì?** |
| 297 | +A: Dùng `get_device` để xem chi tiết, AI sẽ tự phân tích và đề xuất các lệnh điều khiển phù hợp. |
| 298 | + |
| 299 | +**Q: Production và Staging khác nhau thế nào?** |
| 300 | +A: Production là môi trường thực tế, Staging dùng để test. Dữ liệu 2 môi trường hoàn toàn riêng biệt. |
| 301 | + |
| 302 | +**Q: Có giới hạn số lần gọi API không?** |
| 303 | +A: Hiện tại chưa có rate limit nghiêm ngặt. Sử dụng hợp lý để tránh quá tải server. |
| 304 | + |
| 305 | +--- |
| 306 | + |
| 307 | +**🎉 Chúc bạn trải nghiệm vui vẻ với IoT Cloud MCP Server!** |
0 commit comments