Skip to content

Commit 7d90b6a

Browse files
committed
docs: add guide on how to use
1 parent 1449177 commit 7d90b6a

File tree

2 files changed

+315
-2
lines changed

2 files changed

+315
-2
lines changed

docker-compose.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
version: '3.8'
2-
31
services:
42
iot-cloud-mcp:
53
image: ghcr.io/dadadadas111/iot-cloud-mcp:latest
@@ -18,6 +16,14 @@ services:
1816
IOT_API_KEY: ${IOT_API_KEY}
1917
IOT_API_TIMEOUT: ${IOT_API_TIMEOUT:-30000}
2018

19+
ADMIN_API_KEY: ${ADMIN_API_KEY}
20+
21+
# Redis Configuration
22+
REDIS_HOST: ${REDIS_HOST:-localhost}
23+
REDIS_PORT: ${REDIS_PORT:-6379}
24+
REDIS_PASSWORD: ${REDIS_PASSWORD:-}
25+
REDIS_DB: ${REDIS_DB:-0}
26+
2127
# CORS Configuration (always enabled for MCP)
2228
ENABLE_CORS: 'true'
2329
CORS_ORIGINS: ${CORS_ORIGINS:-*}

docs/GUIDE.md

Lines changed: 307 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,307 @@
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

Comments
 (0)