Chuyên mục
Network

Khởi động máy tính từ xa sử dụng UpSnap + IFTTT + Google Assistant

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.

Tạo Proxy Host cho UpSnap

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 đó usernamepassword 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!