Install
openclaw skills install @eduv09/smartclaws-device-shelly-plug-s-gen3Device contract for Shelly Plug S Gen3. Defines SmartClaws topics, payloads, local Shelly RPC methods, and safety rules for bridge and master agents.
openclaw skills install @eduv09/smartclaws-device-shelly-plug-s-gen3This is a device contract skill. It does not install SmartClaws, register a
device, or define an agent role. Use it with smartclaws-master-agent or
smartclaws-bridge-agent.
switch:0The setup must provide channel addresses in SMARTCLAWS.md.
Do not invent channel addresses. If a channel is missing, ask for setup.
Topic: telemetry.switch_status
Normalized payload:
{
"output": true,
"apower_w": 852.3,
"voltage_v": 230.1,
"current_a": 3.7,
"energy_total": 142.4,
"temperature_c": 41.5
}
Fields:
output: relay state, true = ON, false = OFF.apower_w: active power in watts.voltage_v: mains voltage.current_a: current draw in amps.energy_total: cumulative energy value reported by Shelly.temperature_c: plug internal temperature in Celsius; not room temperature.Shelly RPC source mapping:
output <- Switch.GetStatus?id=0.outputapower_w <- apowervoltage_v <- voltagecurrent_a <- currentenergy_total <- aenergy.totaltemperature_c <- temperature.tCTopic: command.switch.set
Payload:
{
"on": true,
"toggle_after": 0
}
Validation:
on is required boolean.toggle_after is optional non-negative integer seconds.toggle_after: 0 means no auto-revert.Effect:
on: true maps to relay ON.on: false maps to relay OFF.Read device info:
GET /rpc/Shelly.GetDeviceInfo
Read relay/power state:
GET /rpc/Switch.GetStatus?id=0
Set relay state:
GET /rpc/Switch.Set?id=0&on=true
GET /rpc/Switch.Set?id=0&on=false
If authentication is enabled, the bridge setup must provide the credential path or mechanism. Do not print credentials.
A master may:
telemetry.switch_status from the outgoing channel.command.switch.set to the incoming channel only when setup authority allows it.A master must not:
A bridge may:
telemetry.switch_status.command.switch.set from the incoming channel and call Switch.Set.A bridge must not:
output must be boolean.