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.
The skill auto-detects config on first run. Manual config in openclaw.json:
json
{
"entries": {
"iobroker-simple-api": {
"config": {
"url": "http://CHANGE_ME_IP",
"port": 8087,
"username": "",
"password": ""
}
}
}
}
text
health
Returns connection status, uptime, and state count.
OptionRequiredDefaultDescriptionurlYeshttp://CHANGE_ME_IPioBroker simple-api base URLportYes8087ioBroker simple-api portusernameNo(empty)Basic Auth usernamepasswordNo(empty)Basic Auth password
The skill automatically detects the OpenClaw config path:
OPENCLAW_HOME, OPENCLAW_STATE_DIR)Change config at runtime:
text
config:baseUrl=http://CHANGE_ME_IP:8087
config:timeout=20000
text
getPlainValue:javascript.0.sensor.temperature
With JSON parsing:
text
getPlainValue:javascript.0.data?json
text
get:javascript.0.sensor.temperature
text
getBulk:javascript.0.sensor.temperature,javascript.0.sensor.humidity
text
objects:* # All objects
objects:javascript.0.* # JavaScript adapter objects
states:* # All states
states:humidity* # States starting with humidity
text
search:temperature
search:livingroom
text
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)text
csv:javascript.0.sensor.temperature?dateFrom=-24h
text
set:javascript.0.light?value=on
set:javascript.0.counter?value=42&type=number&ack=true
text
toggle:javascript.0.switch
text
setBulk:javascript.0.light1=on&javascript.0.light2=off
text
create:javascript.0.myNewState?common={"type":"number","name":"My State"}
delete:javascript.0.myNewState
text
enable:javascript.0.myNewState
disable:javascript.0.myNewState
text
exec:$('javascript.0.sensor.temp').val(true)
eval:2+2
text
scripts
jsinfo
CommandDescriptionhealthConnection status, uptime, state countcacheCache statistics (hits, misses, size)rateRate limit statussystemHosts, memory, CPU inforuntimeUptime, CPU, memory, diskadaptersList installed adaptersinstancesAdapter instances with statusstatusFull skill status
text
scene:mynight={"light.living":"on","light.bedroom":"off"}
scenes
activate:mynight
deletescene:mynight
text
snapshot:backup=state1,state2
snapshots
diff:snap1 vs snap2
diff:snap1 vs current
text
groups
groups:rooms
group:enum.rooms.living
CommandDescriptiongetPlainValue:<id>Get state valueget:<id>Get state + objectgetBulk:<ids>Multiple statesobjects:<pattern>List objectsstates:<pattern>List statessearch:<pattern>Search dataquery:<id>?dateFrom=...Query historyset:<id>?value=...Set statetoggle:<id>Toggle statesetBulk:<id1>=<v1>&<id2>=<v2>Multiple writescreate:<id>?common=...Create statedelete:<id>Delete stateexec:<js>Execute JSscene:name={...}Create scenesnapshot:name=...Take snapshotgroupsList enumshealthConnection checkcacheCache statssystemSystem inforuntimeRuntime info
skill.js - Main implementationindex.js - Skill loaderLICENSE - MIT No Attribution