360 Secure SkillHub
360 安全技能中心

Iobroker Simple Api

面向 OpenClaw 的 ioBroker simple-api 客户端,可读取与写入状态和对象、批量操作、查询历史数据并导出 CSV、创建或删除状态、执行 JavaScript、管理场景与快照,并内置缓存、限流与熔断机制;需要 ioBroker simple-api 适配器及基础鉴权配置。

sanwebgit
sanwebgit
热度 52.90
最近更新 2026-05-18 12:37:03
分类:自动化依赖:第三方 API / 代码执行 / 读写文件应用场景:自动化脚本 / API 集成 / 数据处理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add iobroker-simple-api
Metadata
name
iobroker-simple-api
description
Full access to ioBroker via the iobroker simple-api adapter. Read states, objects, historical data, write to states, execute scripts, and more.

📊 ioBroker Simple-API Skill

Production-ready ioBroker client for OpenClaw automation.

Full access to ioBroker via the simple-api adapter. Read states, objects, historical data, write to states, execute JavaScript, and monitor your smart home. The skill automatically handles caching, rate limiting, and circuit breaker protection. Use this skill to integrate OpenClaw with your ioBroker installation for full smart home control.


🚀 Quick Start

Prerequisites

  • ioBroker with simple-api adapter installed
  • Adapter running on a port (default 8087)

Minimal Configuration

The skill auto-detects config on first run. Manual config in openclaw.json:

{
  "entries": {
    "iobroker-simple-api": {
      "config": {
        "url": "http://CHANGE_ME_IP",
        "port": 8087,
        "username": "",
        "password": ""
      }
    }
  }
}

Test Connection

health

Returns connection status, uptime, and state count.


⚙️ Configuration

Option Required Default Description
url Yes http://CHANGE_ME_IP ioBroker simple-api base URL
port Yes 8087 ioBroker simple-api port
username No (empty) Basic Auth username
password No (empty) Basic Auth password

Auto-Detection

The skill automatically detects the OpenClaw config path:

  1. From environment variables (OPENCLAW_HOME, OPENCLAW_STATE_DIR)
  2. From its own installation path (skill → workspace → .openclaw)
  3. Creates default config on first run if missing

Runtime Config

Change config at runtime:

config:baseUrl=http://CHANGE_ME_IP:8087
config:timeout=20000

📖 Read Operations

Get State Value

getPlainValue:javascript.0.sensor.temperature

With JSON parsing:

getPlainValue:javascript.0.data?json

Get State + Object

get:javascript.0.sensor.temperature

Get Multiple States

getBulk:javascript.0.sensor.temperature,javascript.0.sensor.humidity

List Objects/States

objects:*              # All objects
objects:javascript.0.*  # JavaScript adapter objects
states:*               # All states
states:humidity*       # States starting with humidity

Search

search:temperature
search:livingroom

Query History

query:javascript.0.sensor.temperature?dateFrom=-1h
query:system.host.*?dateFrom=-24h&aggregate=minmax

Supported time formats:

  • -1h, -30m, -7d (relative)
  • today (today at midnight)
  • 2024-01-01 (absolute)

CSV Export

csv:javascript.0.sensor.temperature?dateFrom=-24h

📤 Write Operations

Set State

set:javascript.0.light?value=on
set:javascript.0.counter?value=42&type=number&ack=true

Toggle

toggle:javascript.0.switch

Set Multiple

setBulk:javascript.0.light1=on&javascript.0.light2=off

Create/Delete State

create:javascript.0.myNewState?common={"type":"number","name":"My State"}
delete:javascript.0.myNewState

Enable/Disable

enable:javascript.0.myNewState
disable:javascript.0.myNewState

💻 Script Execution

Execute JavaScript

exec:$('javascript.0.sensor.temp').val(true)
eval:2+2

List Scripts

scripts
jsinfo

🔌 System Commands

Command Description
health Connection status, uptime, state count
cache Cache statistics (hits, misses, size)
rate Rate limit status
system Hosts, memory, CPU info
runtime Uptime, CPU, memory, disk
adapters List installed adapters
instances Adapter instances with status
status Full skill status

🎬 Scenes & Snapshots

Scenes

scene:mynight={"light.living":"on","light.bedroom":"off"}
scenes
activate:mynight
deletescene:mynight

Snapshots

snapshot:backup=state1,state2
snapshots
diff:snap1 vs snap2
diff:snap1 vs current

📊 Groups & Enums

groups
groups:rooms
group:enum.rooms.living

⚡ Features

Caching

  • 30 second TTL for frequently accessed states
  • Automatic cache invalidation on writes

Rate Limiting

  • 10 requests/second to prevent API flooding
  • Queue management for burst requests

Circuit Breaker

  • Auto-recovery on failures
  • Exponential backoff with jitter

Batch Operations

  • Efficient bulk get/set
  • Parallel execution option

Type Coercion

  • Convert between boolean/number/string
  • Automatic JSON parsing

Historical Queries

  • Multiple aggregation types (minmax, average, sum, count)
  • Configurable time ranges

📋 API Reference

Commands Summary

Command Description
getPlainValue:<id> Get state value
get:<id> Get state + object
getBulk:<ids> Multiple states
objects:<pattern> List objects
states:<pattern> List states
search:<pattern> Search data
query:<id>?dateFrom=... Query history
set:<id>?value=... Set state
toggle:<id> Toggle state
setBulk:<id1>=<v1>&<id2>=<v2> Multiple writes
create:<id>?common=... Create state
delete:<id> Delete state
exec:<js> Execute JS
scene:name={...} Create scene
snapshot:name=... Take snapshot
groups List enums
health Connection check
cache Cache stats
system System info
runtime Runtime info

📁 Resources

Files

  • skill.js - Main implementation
  • index.js - Skill loader
  • LICENSE - MIT No Attribution

🔗 External Links