Skip to content

WiFi Devices in Home Assistant

Shelly Tasmota ESPHome

Shelly WiFi Devices

WiFi-based smart home devices are often the easiest to get started with. No coordinator, no mesh - just your existing WiFi network. This guide covers the big three: Shelly, Tasmota, and ESPHome.


Shelly devices are Bulgarian-made WiFi products that just work. Out of the box. No flashing, no configuration - connect power, join WiFi, done.

AdvantageDescription
Local APIWorks 100% without internet
No cloud requiredDisable cloud entirely if you want
CoIoT/MQTTChoose your protocol
Power meteringMost models have built-in meters
Compact sizeFits behind switches and in junction boxes
ModelFunctionChannelsPowerPrice
Shelly 1Relay116A~$13
Shelly 1PMRelay + metering116A~$17
Shelly 2PMRelay + metering210A/ch~$24
Shelly Plus 1Gen2 relay116A~$16
Shelly Plus 2PMGen2 relay + metering210A/ch~$27
Shelly Pro 4PMDIN rail, display416A/ch~$80
Shelly Dimmer 2LED dimmer1220W LED~$27
Shelly Plug SSmart plug112A~$20

Home Assistant automatically discovers Shelly devices on your network:

  1. Connect Shelly to power and WiFi via Shelly app

  2. Go to Settings β†’ Devices & Services

  3. Shelly appears under β€œDiscovered” - click Configure

  4. Enter IP address if not auto-discovered

  5. Done - all entities are created automatically

For faster updates on Gen1 devices:

# In Shelly's web interface:
# Internet & Security β†’ Advanced - Developer Settings
# Enable CoIoT
Enable CoIoT: βœ“
# Set unicast to Home Assistant
CoIoT peer: 192.168.1.100:5683 # Your HA IP
AspectNative IntegrationMQTT
SetupAutomaticManual configuration
SpeedFast (CoIoT/WebSocket)Fast
CloudCan run simultaneouslyGen1: Either/or
Recommendationβœ… For most usersOnly if you need MQTT

Rule of thumb: Use the native Shelly integration. MQTT rarely provides benefits and requires more maintenance.


Tasmota is open source firmware for ESP8266/ESP32-based devices. Flash it on cheap Sonoff switches or Chinese smart plugs, and you get full local control.

  • You have cheap Tuya/SmartLife devices requiring cloud
  • You want MQTT-based control
  • The device isn’t directly supported in Home Assistant
  • You prefer web-based configuration over YAML

Tasmota runs on almost anything with ESP8266 or ESP32:

Device TypeExamples
SonoffBasic, Mini, S31, 4CH Pro, POW
Tuya/SmartLifeSmart plugs, switches, LED bulbs
ShellyCan flash to Tasmota (but why?)
BlitzWolfBW-SHP6, BW-SHP10
GosundSP1, SP111, WP3
NodeMCU/WemosDIY projects

The easiest method - requires only Chrome/Edge browser:

  1. Go to tasmota.github.io/install

  2. Connect device via USB (or USB-to-Serial adapter)

  3. Select firmware variant (typically β€œTasmota”)

  4. Click Install and wait

  5. Device creates WiFi network β€œtasmota_XXXXXX”

  6. Connect and configure your WiFi

After flashing:

  1. Connect to tasmota_XXXXXX WiFi network

  2. Open 192.168.4.1 in browser

  3. Select your WiFi and enter password

  4. Device restarts and gets new IP from your router

  5. Find IP in router or via Tasmota Device Locator

  6. Open Tasmota Dashboard at the new IP

Tasmota needs to know which GPIO pins control what:

# In Tasmota Dashboard:
# Configuration β†’ Configure Other
# Paste template from templates.blakadder.com
{"NAME":"Gosund SP1","GPIO":[56,0,158,0,132,134,0,0,131,17,0,21,0],"FLAG":0,"BASE":45}
# Or select module:
# Configuration β†’ Configure Module β†’ (select from list)

Tasmota primarily communicates via MQTT:

# Configuration β†’ Configure MQTT
Host: 192.168.1.100 # Your MQTT broker (often HA)
Port: 1883
Client: tasmota_%06X # Unique per device
User: mqtt_user
Password: mqtt_password
Topic: gosund_office # Choose descriptive name
Full Topic: %prefix%/%topic%/

Tasmota has native integration via MQTT Discovery:

  1. Enable MQTT Discovery in Tasmota:

    SetOption19 1
  2. Install Tasmota integration in Home Assistant:

    • Settings β†’ Devices & Services β†’ Add Integration
    • Search β€œTasmota”
  3. Devices are automatically discovered via MQTT

  4. All entities (switches, sensors, metering) are created


ESPHome is the most flexible choice. You write a YAML file, ESPHome compiles firmware, and you get exactly the functionality you want.

AspectESPHomeTasmota
ConfigurationYAML filesWeb interface
FlexibilityUnlimitedLimited to templates
HA IntegrationNative API (fastest)MQTT
Learning curveSteeperEasier start
DIY Projects⭐⭐⭐⭐⭐⭐⭐⭐
Ready-made devices⭐⭐⭐⭐⭐⭐⭐⭐
  • DIY projects with sensors and actuators
  • You want native Home Assistant API (faster than MQTT)
  • You need advanced logic on the device itself
  • You prefer declarative configuration

You can flash ESPHome on many Tasmota-compatible devices:

# Example: Sonoff Basic
esphome:
name: sonoff-kitchen
platform: ESP8266
board: esp01_1m
wifi:
ssid: "MyWiFi"
password: "secret"
api:
encryption:
key: "your-encryption-key"
ota:
password: "ota-password"
binary_sensor:
- platform: gpio
pin:
number: GPIO0
mode: INPUT_PULLUP
inverted: true
name: "Button"
on_press:
- switch.toggle: relay
switch:
- platform: gpio
name: "Kitchen Light"
pin: GPIO12
id: relay
status_led:
pin:
number: GPIO13
inverted: true
  1. Flash Tasmota Minimal first (frees up space):

    • In Tasmota: Firmware Upgrade β†’ Upload tasmota-minimal.bin
  2. Flash ESPHome via HTTP:

    • Compile ESPHome firmware (.bin file)
    • In Tasmota Minimal: Firmware Upgrade β†’ Upload your .bin
  3. Alternatively: Flash via serial/USB as normal


FeatureShellyTasmotaESPHome
Requires flashingβŒβœ…βœ…
Out of box⭐⭐⭐⭐⭐⭐⭐⭐⭐
Flexibility⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
HA IntegrationNativeMQTTNative API
Power meteringBuilt-inDepends on deviceConfigure yourself
PriceHigherCheap devicesCheap devices
SupportCommercialCommunityCommunity
WarrantyPreservedVoidedVoided
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ WHICH FIRMWARE IS RIGHT FOR YOU? β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Want to build it β”‚
β”‚ yourself? β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ β”‚
Yes No
β”‚ β”‚
β–Ό β–Ό
ESPHome β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Have Tuya/cheap β”‚
β”‚ devices? β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ β”‚
Yes No
β”‚ β”‚
β–Ό β–Ό
Tasmota Shelly

WiFi devices are potential security risks. Consider:

# Separate VLAN for IoT
IoT VLAN: 192.168.10.0/24
- No internet access (local only)
- Communication only with Home Assistant
- Firewall rules for MQTT/API

All three platforms support 100% local control:

PlatformHow to disable cloud
ShellyInternet & Security β†’ Cloud β†’ Disable
TasmotaNo cloud by default
ESPHomeNo cloud by default
  • Shelly: OTA via app or web interface
  • Tasmota: OTA via web interface
  • ESPHome: OTA via Home Assistant dashboard

Ofte stillede spΓΈrgsmΓ₯l

Can I flash Tasmota on my Shelly?
Yes, it's technically possible, but there's rarely a reason to do so. Shelly's native firmware has local API, MQTT support, and good Home Assistant integration. You also void the warranty.
Why choose Tasmota over ESPHome?
Tasmota is easier to get started with on ready-made devices. The web interface makes configuration easy without writing YAML. It also has better support for many specific devices via templates.
Are WiFi devices worse than Zigbee?
Not necessarily. WiFi devices have higher power consumption (bad for batteries), but work directly without a coordinator. For mains-powered devices like switches and smart plugs, WiFi is perfectly fine.
Can my WiFi devices work if the internet is down?
Yes! With Shelly (local API), Tasmota (MQTT), or ESPHome (native API), everything works locally. Only cloud-based devices stop working during internet outages.


Last updated: December 2025


Kommentarer