Sonoff Mini Relay
https://sonoff.tech/product/wifi-diy-smart-switches/sonoff-mini
GPIO Pinout
Pin | Function |
---|---|
GPIO00 | BUTTON |
GPIO01 | TX |
GPIO02 | AVAILABE |
GPIO03 | RX |
GPIO04 | S2 (external switch input) |
GPIO12 | Relay and RED LED |
GPIO13 | BLUE LED |
GPIO16 | OTA jumper pin |
GND | S1 (external switch input) |
Basic Config
substitutions:
device_name: sonoffmini_1
device_ip: 192.168.x.x
esphome:
name: ${device_name}
platform: ESP8266
board: esp8285
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: ${device_ip}
gateway: 192.168.x.x
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "ESPHOME"
password: "12345678"
logger:
api:
reboot_timeout: 15min
password: !secret api_password
ota:
password: !secret ota_password
# the web_server & sensor components can be removed without affecting core functionaility.
web_server:
port: 80
sensor:
- platform: wifi_signal
name: ${device_name} Wifi Signal Strength
update_interval: 60s
- platform: uptime
name: ${device_name} Uptime
#######################################
# Device specific Config Begins Below #
#######################################
binary_sensor:
- platform: gpio
pin: GPIO00
id: reset
internal: true
filters:
- invert:
- delayed_off: 10ms
on_press:
- switch.toggle:
id: relay_1
- platform: gpio
name: ${device_name}_status
pin: GPIO04
id: switch_1
on_press:
then:
- switch.toggle:
id: relay_1
on_release:
then:
- switch.toggle:
id: relay_1
switch:
- platform: gpio
name: ${device_name}_switch
icon: "mdi: lightbulb_outline"
pin: GPIO12
id: relay_1
restore_mode: restore_default_off
status_led:
pin:
number: GPIO13
inverted: true
output:
- platform: esp8266_pwm
id: blue_led
pin: GPIO13
inverted: True
light:
# the 4 lines below define the Blue LED light on Sonoff Mini, to expose in HomeAssistant remove line "internal: true"
- platform: monochromatic
name: ${device_name}_blueled
output: blue_led
internal: true # hides the Blue LED from HomeAssistant
Alternative Config for Lights
This config will cause the entities to appears as lights rather than switches in Home Assistant
substitutions:
device_name: sonoffmini
device_ip: 192.168.x.x
esphome:
name: ${device_name}
platform: ESP8266
board: esp01_1m
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: ${device_ip}
gateway: 192.168.0.1
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "ESPHOME"
password: "12345678"
logger:
api:
reboot_timeout: 15min
password: !secret api_password
ota:
password: !secret ota_password
# the web_server & sensor components can be removed without affecting core functionaility.
web_server:
port: 80
sensor:
- platform: wifi_signal
name: ${device_name} Wifi Signal Strength
update_interval: 60s
- platform: uptime
name: ${device_name} Uptime
#######################################
# Device specific Config Begins Below #
#######################################
binary_sensor:
# the 7 lines below define the reset button
- platform: gpio
pin: GPIO00
id: reset
internal: true # hides reset switch from HomeAssistant
filters:
- invert:
- delayed_off: 10ms
# the 3 lines below toggle the main relay on press of reset button
on_press:
- light.toggle:
id: light_id
# the 13 lines below toggle the main relay on command
- platform: gpio
name: relay_toggle
internal: true # hides relay toggle from HomeAssistant
pin: GPIO04
id: gpio_light_id
on_press:
then:
- light.toggle:
id: light_id
on_release:
then:
- light.toggle:
id: light_id
# the 2 lines below create a status entity in HomeAssistant.
- platform: status
name: ${device_name} Status
status_led:
pin:
number: GPIO13
inverted: true
output:
# the 3 lines below control the main relay
- platform: gpio
pin: GPIO12
id: main_light_relay
# the 3 lines below control the Blue LED
- platform: esp8266_pwm
id: blue_led
pin: GPIO13
inverted: True
light:
# the 4 lines below define the main relay as a light
- platform: binary
name: ${device_name}_light # you can enter a custom name to appear in HomeAsistant here.
output: main_light_relay
id: light_id
# the 4 lines below define the Blue LED light on Sonoff Mini, to expose in HomeAssistant remove line "internal: true"
- platform: monochromatic
name: ${device_name}_blueled
output: blue_led
internal: true # hides the Blue LED from Homeassistant