Trước đây mình đã từng chia sẻ cách khởi động máy tính từ xa sử dụng IFTTT kết hợp với Google Assistant, dựa trên script WOL code bằng Python.
Tuy nhiên, gần đây mình đã chuyển qua sử dụng UpSnap để quản lý và khởi động máy tính qua mạng. Bài viết này sẽ là hướng dẫn sử dụng UpSnap nâng cao: khởi động máy tính từ xa bằng giọng nói bằng cách tích hợp thêm IFTTT và Google Assistant.
1. Cài đặt UpSnap
Trước khi bắt đầu, bạn cần có UpSnap đã cài đặt trên 1 máy tính trong mạng nội bộ. Tham khảo lại bài viết hướng dẫn bên dưới
UpSnap – Công cụ quản lý và khởi động máy tính qua mạng (Wake-On-LAN)
2. Thiết lập Reverser Proxy
Mình sử dụng Nginx Proxy Manager để thiết lập tên miền truy cập cho UpSnap Dashboard. Mình sử dụng thêm tính năng Access List của NPM để yêu cầu nhập username / password khi truy cập vào tên miền này.
3. Xác định URL của máy tính cần khởi động
Bạn cần xem lại phần 4 của bài viết giới thiệu UpSnap để biết cách tìm ra URL của máy tính cần khởi động.
Ví dụ: ID của máy tính cần khởi động là jixxxxxxxxxxxx
, thì URL sẽ là https:///api/upsnap/wake/jxxxxxxxxxxxxxx
mình cần sử dụng lệnh sau trong Terminal để mở máy
curl -v https:///api/upsnap/wake/jxxxxxxxxxxxxxx -u "username:password"
Trong đó username
và password
là tên đăng nhập và mật khẩu của Access List đã thiết lập trong Nginx Proxy Manager. Nếu không sử dụng Access List, bạn có thể bỏ phần -u "username:password"
ra khỏi câu lệnh.
Kết quả trả về như sau, đồng thời máy máy tính đã được khởi động thành công
* Trying xxx.xxx.xxx:8090...
* Connected to 192.168.0.50 (192.168.0.50) port 8090 (
* Server auth using Basic with user 'thuanbui'
> GET /api/upsnap/wake/jxxxxxxxxxxx HTTP/1.1
> Host: 192.168.0.50:8090
> Authorization: Basic dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMQ==
> User-Agent: curl/7.74.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Type: application/json; charset=UTF-8
< Vary: Origin
< X-Content-Type-Options: nosniff
< X-Frame-Options: SAMEORIGIN
< X-Xss-Protection: 1; mode=block
< Date: Sun, 19 Feb 2023 22:37:50 GMT
< Content-Length: 412
<
{"collectionId":"zxxxxxxxxxxxxxxx","collectionName":"devices","created":"2023-02-19 13:40:21.484Z","id":"jxxxxxxxxxxxxxx","ip":"192.168.0.100","link":"","mac":"FC:xx:xx:xx:xx:xx","name":"GAMING-PC","netmask":"255.255.255.0","password":"","ports":[],"shutdown_cmd":"","shutdown_cron":"","shutdown_cron_enabled":false,"status":"online","updated":"2023-02-19 22:36:16.845Z","wake_cron":"","wake_cron_enabled":false}
* Connection #0 to host 192.168.0.50 left intact
Bạn cần ghi lại thông số ở dòng số 6: Authorization: Basic dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMQ==
, vì sẽ cần sử dụng ở bước kế tiếp.
4. Thiết lập thông số trên IFTTT
Cách cấu hình IFTTT mình đã hướng dẫn chi tiết trong bài viết trước nên sẽ không ghi lại nữa. Các bạn có thể xem lại ở đây:
Mở máy tính bằng giọng nói sử dụng Google Assistant, IFTTT và Nginx Proxy Manager
Khác biệt duy nhất là các thông số ở phần Edit action fields
- URL: nhập vào URL đã xác định ở bước 3
- Method: GET
- Content type: Text/plain
- Additional header: nhập vào
Authorization: Basic dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMQ==
Bấm Update Action để cập nhật lại thông số.
Vậy là xong. Từ giờ bạn đã có thể mở máy tính từ xa bằng Google Assistant với câu lệnh “Activate my Computer”.
Chúc bạn thực hiện thành công!