Door switch

Switch Input - Switch NORMAL



Any door switch module can be used as an digital input. Most none contact door switches use a technology called reed switch. By using a magnet (the part with no wires) the reed inside the other part (with wires) will connect the two parts of the reed and making a signal go low or high depending on how you have connected the switch. You may use it by simply connect it to either a GPIO that is normally high (pull-up) or normally low (pull-down).

  • Give a high or low signal to a GPIO

  • Power needed: 3.3V (typically)

  • Output voltage: same as input (typically)


ESP               Door switch
GPIO (X)   <-->   Signal

3.3V       <-->   Signal
GND        <-->   Signal



Task settings

  • Device: Name of plugin

  • Name: Name of the task (example name Door)

  • Enable: Should the task be enabled or not


  • Internal pull-up: Check if you want to use the internal pull-up of the ESP (not all GPIO pins have this internal pull-up.)

  • Inverse logic: Sometimes you may want the physical high value to be published as a low value. For example if the button is triggering a high (1) value when you push it you maybe use it to turn of a LED so the Switch#State would then logically be preferred to be set as 0 and thus used as a variable for controlling that LED. See rules example below.

  • GPIO: Which GPIO should be used, recommended to not use a latching switch that may set the ESP into flash mode if left to high/low.

  • Switch type: Set the switch type to either “Switch” or “Dimmer”. Door (reed) switch is a “Switch”.

    • Switch: The default way of handling a switch is by a on/off button. It’s either on (1) or off (0).

    • Dimmer: Not used by door (reed) switches, if you still want to use it you can have a look at the Switch page.

  • Switch button type: Set the type of switch, “Normal switch”, “Push button active low”, or “Push button active high”. * Normal switch: This is the general setting to use for a PIR switch.

    • Push button active low: Not used by door (reed) switches (in general), if you still want to use it you can have a look at the Switch page.

  • Send boot state: If checked the unit will publish the switch state when booting. If not checked you may find yourself with a latching switch caught in limbo. This means that the unit is registering a low/high value but the physical state of the switch might be the opposite. If you use a mechanical switch that may be physically set to a state you should check this option.

Advanced event management

  • De-bounce (ms): How long should the pulse (the time you press the button) be, if set to high you need to have it published for a longer time before the unit will register it as an state change. You could experiment with this setting to find a good behavior of the button if you feel that it’s not responding according to your preferences.

  • Double click event: Not used by door (reed) switches (in general), if you still want to use it you can have a look at the Switch page.

  • Double click max interval (ms): Same as above..

  • Long press event: Same as above..

  • Long press min interval (ms): Same as above..

  • Use safe button (slower): Same as above..

Data acquisition

  • Send to controller 1..3: Check which controller (if any) you want to publish to. All or no controller can be used.

  • Interval: How often should the task publish its value (optional for switch plugins).

Rules examples

on Door#State=1 do

on rules#timer=1 do
 if [Door#State]=0
  //Action if door is closed
  //Action if door is opened

Where to buy



Door switch

AliExpress 1 ($) Banggood 1 ($) eBay 1 ($)

Reed switch

AliExpress 2 ($) Banggood 2 ($) eBay 2 ($)

$ = affiliate links which will give us some money to keep this project running, thank you for using those.