Install
openclaw skills install iobroker-simple-apiFull access to ioBroker via the iobroker simple-api adapter. Read states, objects, historical data, write to states, execute scripts, and more.
openclaw skills install iobroker-simple-apiProduction-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.
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": ""
}
}
}
}
health
Returns connection status, uptime, and state count.
| 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 |
The skill automatically detects the OpenClaw config path:
OPENCLAW_HOME, OPENCLAW_STATE_DIR)Change config at runtime:
config:baseUrl=http://CHANGE_ME_IP:8087
config:timeout=20000
getPlainValue:javascript.0.sensor.temperature
With JSON parsing:
getPlainValue:javascript.0.data?json
get:javascript.0.sensor.temperature
getBulk:javascript.0.sensor.temperature,javascript.0.sensor.humidity
objects:* # All objects
objects:javascript.0.* # JavaScript adapter objects
states:* # All states
states:humidity* # States starting with humidity
search:temperature
search:livingroom
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:javascript.0.sensor.temperature?dateFrom=-24h
set:javascript.0.light?value=on
set:javascript.0.counter?value=42&type=number&ack=true
toggle:javascript.0.switch
setBulk:javascript.0.light1=on&javascript.0.light2=off
create:javascript.0.myNewState?common={"type":"number","name":"My State"}
delete:javascript.0.myNewState
enable:javascript.0.myNewState
disable:javascript.0.myNewState
exec:$('javascript.0.sensor.temp').val(true)
eval:2+2
scripts
jsinfo
| 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 |
scene:mynight={"light.living":"on","light.bedroom":"off"}
scenes
activate:mynight
deletescene:mynight
snapshot:backup=state1,state2
snapshots
diff:snap1 vs snap2
diff:snap1 vs current
groups
groups:rooms
group:enum.rooms.living
| 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 |
skill.js - Main implementationindex.js - Skill loaderLICENSE - MIT No Attribution