Pular para o conteúdo principal

ESPHome no Adaptador Ethernet XIAO(ESP32-S3) W5500 para Home Assistant

Este tutorial demonstra como implementar um Bluetooth Proxy usando o XIAO W5500 Ethernet Adapter, com integração e validação no Home Assistant.

Antes de prosseguir com este tutorial, certifique-se de que os seguintes pré-requisitos sejam atendidos:

  1. Um dispositivo host capaz de executar o Home Assistant.
  2. Uma conexão estável Ethernet ou Wi-Fi.
  3. (Recomendado) Capacidade PoE (Power over Ethernet) ou uma fonte de alimentação externa de 5 V.
  4. XIAO(ESP32-S3) W5500 Ethernet Adapter
XIAO(ESP32-S3) W5500 Ethernet Adapter

Introdução ao Home Assistant

O Home Assistant é uma poderosa plataforma de automação residencial de código aberto que permite controlar e monitorar seus dispositivos domésticos inteligentes a partir de uma interface única e unificada. Ele atua como o hub central da sua casa inteligente, permitindo automatizar rotinas, monitorar sensores e criar um ambiente mais inteligente.

Integração com ESPHome

ESPHome é uma ferramenta de criação de firmware de código aberto projetada especificamente para dispositivos ESP8266 / ESP32. Ela permite criar firmwares personalizados usando arquivos de configuração YAML simples, que depois podem ser gravados no seu dispositivo.

Primeiros Passos com ESPHome

Visão Geral do Bluetooth Proxy

O Bluetooth Proxy atua como uma ponte de sensoriamento distribuída leve que estende a cobertura Bluetooth do Home Assistant além do alcance nativo do host. Ao implantar múltiplos nós ESP32 pelo ambiente, é possível estabelecer uma rede de sensoriamento Bluetooth para toda a casa, permitindo conexões estáveis com diversos dispositivos BLE, como sensores de temperatura e umidade, sensores de porta/janela, módulos de iluminação e monitores de plantas.

Funções Principais:

  • Cobertura Estendida: Remove a dependência do alcance Bluetooth do host ao utilizar nós proxy ESP32 distribuídos para alcançar conectividade Bluetooth em toda a casa.
  • Como Funciona:
    • O XIAO W5500 Ethernet Adapter habilita a varredura Bluetooth
    • Ele recebe pacotes de broadcast BLE próximos (por exemplo, termômetros, fechaduras inteligentes, luzes)
    • Os dados são encaminhados ao Home Assistant via Ethernet ou Wi-Fi
    • O Home Assistant reconhece esses dispositivos como entidades Bluetooth
    • Os usuários podem visualizar temperatura, nível de bateria, intensidade de sinal e outras métricas diretamente na interface do Home Assistant

Instalar o Firmware

Se você ainda não configurou o Home Assistant, pode clicar neste link e seguir o tutorial oficial do Home Assistant para concluir a configuração. Home Assistant Installation

Passo 1. Instalar ESPhome

Se você já instalou o ESPHome, pode pular esta etapa.

  • Vá em Settings -> Add-ons
  • ADD-ON STORE -> Search ESPHome
  • Iniciar ESPhome

Passo 2. Adicionar novo dispositivo

Vá para o ESPHome e clique no botão Add New Device no canto inferior direito.

Nomeie o equipamento e selecione o chip de controle principal correspondente. O XIAO W5500 foi projetado com base no XIAO ESP32-S3.


Passo 3. Instalar o firmware

Clique aqui para copiar o arquivo yaml
# Only boards produced after November 1, 2025 are supported
# ==== AUTO-SYNC START: xiao-w5500-ethernet-adapter/xiao-w5500-ethernet-adapter.yaml ====

# Only boards produced after November 1, 2025 are supported
esphome:
name: seeed-esp32-poe
friendly_name: "XIAO W5500 Ethernet Adapter V1.2"
min_version: 2025.11.0
name_add_mac_suffix: true

esp32:
variant: esp32s3
framework:
type: esp-idf

ethernet:
type: W5500
clk_pin: GPIO7
mosi_pin: GPIO9
miso_pin: GPIO8
cs_pin: GPIO2
interrupt_pin: GPIO10

api:
logger:

ota:
- platform: esphome
id: ota_esphome

esp32_ble:
max_connections: 4

esp32_ble_tracker:

bluetooth_proxy:
active: true
connection_slots: 4

button:
- platform: safe_mode
id: button_safe_mode
name: Safe Mode Boot

- platform: factory_reset
id: factory_reset_btn
name: Factory reset
# ==== AUTO-SYNC END ====

Clique em INSTALL para instalar o código no dispositivo e você verá a imagem a seguir.

dica

Se o seu Home Assistant Host (Raspberry PI/Green/Yellow etc.) estiver longe de você, recomendamos usar este método. Você pode instalar com o computador que tem em mãos.

Primeiro, você precisa clicar em Manual download para baixar o firmware compilado.

Abra este site onde faremos o upload do firmware para o XIAO(ESP32-S3) W5500 Ethernet Adapter.

Volte ao ESPHome para baixar o firmware.

Selecione o formato Factory.

Use um cabo USB para conectar o dispositivo ao seu computador e clique em CONNECT.

Selecione usbmodemxxx (no Windows é COMxxx) e clique em connect.

Clique em INSTALL e selecione o firmware que você acabou de baixar.

Passo 4. Veja os resultados da varredura

  • Navegue até SettingsDevices & services → Bluetooth e selecione o dispositivo Bluetooth Proxy.

  • Selecione Advertisement Monitor para visualizar as informações dos dispositivos Bluetooth escaneados.

    • Addresss: O endereço de broadcast do dispositivo Bluetooth (em formato semelhante a MAC). Observe que este não é o endereço MAC físico real — é um endereço privado aleatório gerado pelo mecanismo de privacidade BLE, que muda periodicamente.
    • Name: O nome anunciado do dispositivo Bluetooth. Se o dispositivo transmitir seu nome, este campo ajuda a identificá‑lo.
    • Device: A entidade Bluetooth reconhecida no Home Assistant. Se o dispositivo ainda não tiver sido pareado ou identificado, este campo permanece vazio.
    • Source: Indica a fonte da varredura, ou seja, o nó Bluetooth Proxy específico (por exemplo, Bluetooth Proxy 8fed20). Isso ajuda a distinguir dados de vários nós proxy.
    • RRSI: Indicador de Intensidade do Sinal Recebido (em dBm). Quanto mais próximo de 0, mais forte é o sinal.
  • Como alternativa, selecione Visualization para acessar a visualização.

    A figura mostra a Visualização de Anúncios Bluetooth no Home Assistant, ilustrando a topologia da rede de proxy Bluetooth.

dica

Muitos dispositivos BLE usam endereços de privacidade para segurança, o que significa que seu endereço de broadcast é aleatório e atualizado periodicamente. Como resultado, o mesmo dispositivo físico pode aparecer com endereços diferentes na lista de anúncios do Home Assistant. Para identificar um dispositivo de forma confiável, use seu nome anunciado ou outras características, como UUIDs de serviço ou padrões de intensidade de sinal.

Aplicação

Ao aproveitar o proxy Bluetooth implementado no XIAO(ESP32-S3) W5500 Ethernet Adapter, você pode estender significativamente a cobertura Bluetooth para conectar dispositivos Bluetooth. Especificamente, isso pode ser alcançado com base em diferentes protocolos Bluetooth. Abaixo, tomando como exemplo as integrações existentes do Home Assistant (HA), demonstramos os métodos de implementação voltados para cenários de aplicação em casas inteligentes.

BTHome

BTHome é um formato BLE energeticamente eficiente, mas flexível, para dispositivos transmitirem seus dados de sensores e pressionamentos de botão.
Tomando como exemplo a leitura de dados de um sensor de temperatura e umidade DHT11, adicione a integração correspondente no Home Assistant (HA), leia os dados por meio de um proxy Bluetooth e obtenha uma

Além do XIAO(ESP32-S3) W5500 Ethernet Adapter, você também precisará preparar um XIAO ESP32‑C3 e um sensor de temperatura e umidade DHT11.

  1. Adicione o código Arduino
dica

Você também precisa adicionar os arquivos BTHome e os arquivos DHT ao diretório que você criou. Os arquivos específicos podem ser acessados em: DHT&BTHome.zip

#include "BTHome.h"
#include "DHT.h"

#define DHTTYPE DHT11 // DHT 11
#define DHTPIN D0 // what pin we're connected to(DHT10 and DHT20 don't need define it)
DHT dht(DHTPIN, DHTTYPE); // DHT11 DHT21 DHT22

#define DEVICE_NAME "DIY-sensor"
#define ENABLE_ENCRYPT

String BIND_KEY = "231d39c1d7cc1ab1aee224cd096db912"; // Change this key with a string containing 32 of: a-f and 0-9 characters (hex) this will be asked in HA
BTHome bthome;

void setup() {
Serial.begin(115200);
#ifdef ENABLE_ENCRYPT
bthome.begin(DEVICE_NAME, true, BIND_KEY, false);
#else
bthome.begin(DEVICE_NAME, false, "", false);
#endif
Wire.begin();
dht.begin();
}

void loop() {
float temp_hum_val[2] = {0};
if (!dht.readTempAndHumidity(temp_hum_val))
{
Serial.print("Humidity: ");
Serial.print(temp_hum_val[0]);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temp_hum_val[1]);
Serial.println(" *C");
}
else
{
Serial.println("Failed to get temprature and humidity value.");
}

bthome.resetMeasurement();

bthome.addMeasurement(ID_TEMPERATURE_PRECISE, temp_hum_val[1]);//3
bthome.addMeasurement(ID_HUMIDITY_PRECISE, temp_hum_val[0]);//3

bthome.sendPacket();
bthome.stop();
delay(500);
}
  1. Adicione a integração
  • Abra o Home Assistant e navegue até Settings. Um dispositivo BTHome será descoberto em Devices & Services. Clique em Add, insira a chave (cole o BIND_KEY de 32 caracteres do código) e selecione Submit.
  • Após o envio, você será redirecionado para uma página onde poderá visualizar os dados de temperatura e umidade transmitidos, bem como o endereço MAC do Bluetooth. Você também seleciona Add to dashboard.
  • Clicar no endereço MAC revela que o dispositivo foi descoberto pelo proxy Bluetooth implementado no XIAO(ESP32-S3) W5500 Ethernet Adapter. Isso confirma que o proxy Bluetooth está funcionando conforme o esperado.
dica

O protocolo BTHome suporta apenas transmissão de dados unidirecional para o Home Assistant, e cada dado transmitido corresponde a um ID exclusivo. Se você quiser adicionar mais dispositivos, consulte BThome Format

Suporte Técnico e Discussão de Produtos

Obrigado por escolher nossos produtos! Estamos aqui para lhe fornecer diferentes formas de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...