用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/johnalbertini14-glitch/openclaw-skills --skill thingsboard命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | thingsboard |
| description | Manage ThingsBoard devices, dashboards, telemetry, and users via the ThingsBoard REST API. |
| homepage | https://thingsboard.io |
| metadata | {"clawdbot":{"emoji":"📊","requires":{"bins":["jq","curl"],"env":["TB_URL","TB_USERNAME","TB_PASSWORD"]}}} |
Manage ThingsBoard IoT platform resources including devices, dashboards, telemetry data, and users.
Configure your ThingsBoard server in credentials.json:
[
{
"name": "Server Thingsboard",
"url": "http://localhost:8080",
"account": [
{
"sysadmin": {
"email": "sysadmin@thingsboard.org",
"password": "sysadmin"
}
},
{
"tenant": {
"email": "tenant@thingsboard.org",
"password": "tenant"
}
}
]
}
]
Set environment variables:
export TB_URL="http://localhost:8080"
export TB_USERNAME="tenant@thingsboard.org"
export TB_PASSWORD="tenant"
Get authentication token:
export TB_TOKEN=$(curl -s -X POST "$TB_URL/api/auth/login" \
-H "Content-Type: application/json" \
-d "{\"username\":\"$TB_USERNAME\",\"password\":\"$TB_PASSWORD\"}" | jq -r '.token')
All commands use curl to interact with the ThingsBoard REST API.
Login and get token:
curl -s -X POST "$TB_URL/api/auth/login" \
-H "Content-Type: application/json" \
-d "{\"username\":\"$TB_USERNAME\",\"password\":\"$TB_PASSWORD\"}" | jq -r '.token'
Refresh token (when expired):
curl -s -X POST "$TB_URL/api/auth/token" \
-H "Content-Type: application/json" \
-d "{\"refreshToken\":\"$TB_REFRESH_TOKEN\"}" | jq -r '.token'
Get current user info:
curl -s "$TB_URL/api/auth/user" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
List all tenant devices:
curl -s "$TB_URL/api/tenant/devices?pageSize=100&page=0" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq '.data[] | {name, id: .id.id, type}'
Get device by ID:
curl -s "$TB_URL/api/device/{deviceId}" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
Get device credentials:
curl -s "$TB_URL/api/device/{deviceId}/credentials" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
Get telemetry keys:
curl -s "$TB_URL/api/plugins/telemetry/DEVICE/{deviceId}/keys/timeseries" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
Get latest telemetry:
curl -s "$TB_URL/api/plugins/telemetry/DEVICE/{deviceId}/values/timeseries?keys=temperature,humidity" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
Get timeseries data with time range:
START_TS=$(($(date +%s)*1000 - 3600000)) # 1 hour ago
END_TS=$(($(date +%s)*1000)) # now
curl -s "$TB_URL/api/plugins/telemetry/DEVICE/{deviceId}/values/timeseries?keys=temperature&startTs=$START_TS&endTs=$END_TS&limit=100" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
Get attribute keys:
# Client scope
curl -s "$TB_URL/api/plugins/telemetry/DEVICE/{deviceId}/keys/attributes/CLIENT_SCOPE" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
# Shared scope
curl -s "$TB_URL/api/plugins/telemetry/DEVICE/{deviceId}/keys/attributes/SHARED_SCOPE" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
# Server scope
curl -s "$TB_URL/api/plugins/telemetry/DEVICE/{deviceId}/keys/attributes/SERVER_SCOPE" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
Get attributes by scope:
curl -s "$TB_URL/api/plugins/telemetry/DEVICE/{deviceId}/values/attributes/CLIENT_SCOPE?keys=attribute1,attribute2" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
Save device attributes:
curl -s -X POST "$TB_URL/api/plugins/telemetry/DEVICE/{deviceId}/attributes/SERVER_SCOPE" \
-H "X-Authorization: Bearer $TB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"attribute1":"value1","attribute2":"value2"}' | jq
Delete timeseries keys:
curl -s -X DELETE "$TB_URL/api/plugins/telemetry/DEVICE/{deviceId}/timeseries/delete?keys=oldKey1,oldKey2&deleteAllDataForKeys=true" \
-H "X-Authorization: Bearer $TB_TOKEN"
List all dashboards:
curl -s "$TB_URL/api/tenant/dashboards?pageSize=100&page=0" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq '.data[] | {name, id: .id.id}'
Get dashboard info:
curl -s "$TB_URL/api/dashboard/{dashboardId}" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
Make dashboard public:
curl -s -X POST "$TB_URL/api/customer/public/dashboard/{dashboardId}" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
Get public dashboard info (no auth required):
curl -s "$TB_URL/api/dashboard/info/{publicDashboardId}" | jq
Remove public access:
curl -s -X DELETE "$TB_URL/api/customer/public/dashboard/{dashboardId}" \
-H "X-Authorization: Bearer $TB_TOKEN"
List tenant users:
curl -s "$TB_URL/api/tenant/users?pageSize=100&page=0" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq '.data[] | {email, firstName, lastName, id: .id.id}'
List customers:
curl -s "$TB_URL/api/customers?pageSize=100&page=0" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq '.data[] | {title, id: .id.id}'
Get customer users:
curl -s "$TB_URL/api/customer/{customerId}/users?pageSize=100&page=0" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq '.data[]'
List all assets:
curl -s "$TB_URL/api/tenant/assets?pageSize=100&page=0" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq '.data[] | {name, type, id: .id.id}'
Get asset by ID:
curl -s "$TB_URL/api/asset/{assetId}" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
{entityType: "DEVICE", id: "uuid"}. Use the id field for API calls.pageSize and page parameters (default: 100 items per page, max: 1000).CLIENT_SCOPE: Client-side attributes (set by devices)SHARED_SCOPE: Shared between server and devicesSERVER_SCOPE: Server-side only (not visible to devices)startTs and endTs parameters.https://demo.thingsboard.io).# Complete workflow: Login, list devices, get telemetry
export TB_URL="http://localhost:8080"
export TB_USERNAME="tenant@thingsboard.org"
export TB_PASSWORD="tenant"
# Get token
export TB_TOKEN=$(curl -s -X POST "$TB_URL/api/auth/login" \
-H "Content-Type: application/json" \
-d "{\"username\":\"$TB_USERNAME\",\"password\":\"$TB_PASSWORD\"}" | jq -r '.token')
# List all devices
curl -s "$TB_URL/api/tenant/devices?pageSize=10&page=0" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq '.data[] | {name, type, id: .id.id}'
# Get first device ID
DEVICE_ID=$(curl -s "$TB_URL/api/tenant/devices?pageSize=1&page=0" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq -r '.data[0].id.id')
# Get telemetry keys for device
curl -s "$TB_URL/api/plugins/telemetry/DEVICE/$DEVICE_ID/keys/timeseries" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
# Get latest telemetry values
curl -s "$TB_URL/api/plugins/telemetry/DEVICE/$DEVICE_ID/values/timeseries?keys=temperature,humidity" \
-H "X-Authorization: Bearer $TB_TOKEN" | jq
# Get historical data (last hour)
START_TS=$(($(date +%s)*1000 - 3600000))
END_TS=$(($(date +%s)*))
curl -s \
-H | jq
DASHBOARD_ID=$(curl -s \
-H | jq -r )
curl -s -X POST \
-H | jq
Use this skill to create a Polymarket wallet for your agent and trade on prediction markets. Browse markets, place bets, manage positions — all without exposing private keys.
ClawSec suite manager with embedded advisory-feed monitoring, cryptographic signature verification, approval-gated malicious-skill response, and guided setup for additional security skills.
Automated daily security audits for OpenClaw agents with email reporting. Runs deep audits and sends formatted reports.
基于 SOC 职业分类