Device settings
Input settings
Standalone inputs - like the Shelly i3 and Plus i4 - don't drive any relay at all. They exist purely to trigger events, via webhooks or scripts.
Some devices - the Shelly i3 (Gen1) and Shelly Plus i4 (Gen2) are the clearest examples - only have inputs and no relay whatsoever. They exist to let physical buttons or switches trigger something else: a scene, a script, another device's relay, or a webhook to an external system. The same Input component, incidentally, sits behind every physical input on nearly every Shelly device, including ones that also have a relay or a dimmer.
Input type
type decides how the input is interpreted:
| Type | Means |
|---|---|
switch |
Digital input, senses HIGH/LOW - for a toggle switch that stays in one position |
button |
Digital input built for a momentary button - detects single push, double push and long push |
analog |
Reads an analogue value as a percentage (0-100%) instead of on/off |
For analog, there are dedicated fields for how often a new value is reported (report_thr), and for remapping the range (range_map, range, xpercent).
Inverting and locking
invert- flips the input's logical state (foranalog, the percentage range is flipped too, so 100% becomes 0%).factory_reset- whether this specific input can trigger a factory reset of the device. Only works during the device's first 60 seconds after boot, as a safeguard against it happening by accident.enable- disables the input entirely, including every event it would otherwise send.
Events: webhooks and scripts
This is where standalone inputs become useful. Every press generates an event - single push, double push, long push for a button - that you can react to in two ways:
- Webhooks. A URL called automatically when the event happens, configured in the web interface under the device's webhook settings. Needs no script, just a receiving URL.
- Scripts. A Gen2+ script can subscribe to the same events and do anything with them - call another device's RPC methods, publish to MQTT, or run conditional logic a webhook alone can't handle.
Want an input to control a relay on a different device? Webhook or script is the usual path - the Input component itself doesn't drive any relay for you, it only reports what happened.
Multi-button devices
On devices with several inputs, like the Shelly Plus i4 with its four inputs, each input is configured separately with its own id, its own type and its own events - it's four independent inputs in one device, not a shared setting.