Files
synology/SKILL.md
Timmy 321456d4e6 Initial commit: Synology DSM API skill
- Add synology_api.py: DSM API client library
- Add synology_api_login.py: CLI tool for login and system info
- Add SKILL.md: Skill definition with usage examples
- Add CLAUDE.md: Developer documentation
- Add references/: Example configs and usage guide

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 17:55:43 +08:00

2.4 KiB
Raw Permalink Blame History

name, description
name description
synology 透過 Synology DSM WebAPI 進行登入、重用 SID session、抓取 NAS 系統資訊與輸出精簡 JSON 摘要。當使用者要查 Synology NAS 狀態、DSM 版本、CPU/記憶體用量、溫度、Volume 容量、硬碟健康、網路 IP或要把 Synology 查詢流程做成可重複執行腳本時使用。

Synology

使用這個 skill 操作 Synology DSM API不走瀏覽器。

快速開始

先確認環境變數或 profile 可用。可參考:

  • references/env.example
  • references/hosts.json
  • references/usage.md

建議做法:

  • 多台 Synologyreferences/hosts.jsonurluserpassword_env
  • 密碼放 workspace 根目錄 .env
  • 腳本會自動讀 .env,不用每次手動 export

常用指令:

python3 skills/synology/scripts/synology_api_login.py --system-info --summary

若要輸出精簡 JSON

python3 skills/synology/scripts/synology_api_login.py --system-info --json-compact

若有多台 Synology建議改用 profile

python3 skills/synology/scripts/synology_api_login.py --profile home-nas --system-info --summary

搭配 workspace 根目錄 .env

DS_PASSWORD_HOME=你的密碼
DS_PASSWORD_OFFICE=你的密碼

任務

1. 登入 DSM

python3 skills/synology/scripts/synology_api_login.py

重點:

  • 會先嘗試沿用已快取的 SID
  • SID 失效才重新登入
  • 預設吃 DS_URLDS_USERDS_PASSWORD
  • 若指定 --profile,則改讀 references/hosts.json

2. 查系統資訊

python3 skills/synology/scripts/synology_api_login.py --system-info --summary

回覆時優先整理:

  • NAS 型號
  • DSM 版本
  • IP
  • CPU 使用率
  • 記憶體使用率
  • 溫度
  • Volume 容量
  • 硬碟健康

3. 輸出給其他腳本吃的 JSON

python3 skills/synology/scripts/synology_api_login.py --system-info --json-compact

適合:

  • 後續 shell / Python 串接
  • 定期監控
  • 給其他 skill 或腳本使用

注意事項

  • 若 DSM 使用自簽章憑證,這套腳本預設可接受;如需強制驗證憑證,再調整 client。
  • tmp/ 內已有 session cache腳本可能直接沿用舊 SID。
  • 若查不到資料,先確認 DS_URLDS_USERDS_PASSWORD 是否正確。
  • 若只是要看怎麼設定 .env,先讀 references/env.example
  • 若只是要看用法範例,先讀 references/usage.md