Shelly Wiki

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 (for analog, 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.

Report an error on this page

Briefly describe what looks wrong — we read every report.