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>
This commit is contained in:
2026-03-26 17:55:43 +08:00
commit 321456d4e6
8 changed files with 1046 additions and 0 deletions

102
references/usage.md Normal file
View File

@@ -0,0 +1,102 @@
# Synology API 工具使用說明
這個目錄放的是 Synology DSM API 相關腳本:
- `synology_api.py`:共用 API client library
- `synology_api_login.py`:登入、復用 SID、抓系統資訊
---
## 1) 先設定環境變數(建議)
可放在 workspace 根目錄 `.env`
```env
DS_URL=https://syno.lotimmy.com/
DS_USER=你的帳號
DS_PASSWORD=你的密碼
# 可選:輸出檔案路徑
DS_LOGIN_RESULT=tmp/synology_api_login_result.json
DS_SESSION_FILE=tmp/synology_session.json
DS_SYSINFO_FILE=tmp/synology_system_info.json
```
---
## 2) 基本用法
### 只登入(會先嘗試沿用舊 SID失效才重登
```bash
python3 synology_api_login.py
```
### 登入後抓系統資訊
```bash
python3 synology_api_login.py --system-info
```
### 顯示人類可讀摘要
```bash
python3 synology_api_login.py --system-info --summary
```
### 輸出精簡 JSON適合餵腳本
```bash
python3 synology_api_login.py --system-info --json-compact
```
---
## 3) 常用參數
- `--url`DSM URL預設取 `DS_URL`
- `--user`DSM 帳號(預設取 `DS_USER`
- `--password`DSM 密碼(預設取 `DS_PASSWORD`
- `--system-info`:抓系統資訊 bundle
- `--summary`:印出摘要(需搭配 `--system-info`
- `--json-compact`:印出精簡 JSON需搭配 `--system-info`
範例:
```bash
python3 synology_api_login.py \
--url "https://192.168.42.20:5001" \
--user "admin" \
--password "******" \
--system-info --json-compact
```
---
## 4) 主要輸出檔
- `tmp/synology_api_login_result.json`:登入結果(含是否沿用 cached SID
- `tmp/synology_session.json`SID session cache
- `tmp/synology_system_info.json`:完整系統資訊 API 回傳
---
## 5) 目前精簡 JSON 會包含
- `model`
- `serial`
- `ip`(優先 `eth0`
- `dsm_version`
- `cpu_usage_pct`, `cpu_clock_mhz`
- `memory_total_mb`, `memory_usage_pct`
- `temperature_c`
- `volumes`
- `disk_size_usage`(同時有 `*_bytes``*_gib`
- `disk_health`vendor 已去除多餘空白)
- `time`, `uptime`
---
## 6) 執行位置
本 README 的指令都以「目前目錄在 `scripts/synology/`」為前提。