Vevor's 7-in-1 weather station measures temperature, humidity, wind, rain, UV and light outdoors and shows them on an indoor display. A new ESPHome component, vevor_dtx, gets those readings into Home Assistant over the local network. The pull request by Bofr5555, opened on 26 June 2026, was merged by bdraco into the development branch on 18 October at 01:42 UTC, and the documentation (esphome.io #6860) followed a minute later. That puts it in ESPHome 2026.11.

A wire, not a radio

The ESP does not listen to the outdoor sensor's radio transmission. It connects to the receiver board inside some Vevor display units, where a logic-level signal called DTX carries the station's data frames. The documentation shows the tap point on the board. You connect the ESP's ground to the board's ground and the DTX line to a GPIO, ideally through a series resistor of 47 to 100 kOhm. The signal must be at 3.3 V, so check it first: a 5 V line must never go straight into an ESP input. On an ESP8266 the pin has to support interrupts, and GPIO14 is a common choice. GPIO16, strapping pins and UART pins are best avoided.

The signal is captured by the standard remote_receiver component, so the pin can be shared with other protocols, and on the ESP32 the capture runs on the RMT peripheral. Suggested settings are filter: 20us and idle: 3ms for the default bit time of 88 µs. The decoder waits for the sync word, collects a 21-byte payload and accepts it only when the checksum matches and the following byte echoes the transmit counter plus one, the same checks the vevor_7in1 decoder in rtl_433 uses.

What you get

remote_receiver:
  id: rcvr
  pin: GPIO4
  filter: 20us
  idle: 3ms

vevor_dtx:
  receiver_id: rcvr
  station_id: 0x1234

The sensor platform publishes temperature in °C, humidity, wind speed and gusts in m/s, wind direction in degrees, UV index, illuminance in lux and rain in millimetres. Rain is a running total since the station was powered up, published with the total_increasing state class. A text sensor reports the station ID in hex, and a binary sensor reports the outdoor unit's low-battery flag. A diagnostic sensor shows the transmit counter, which runs from 0 to 255 and wraps.

Set station_id once you have read your own station's ID, and frames from a neighbour's station in range are ignored. The component was tested on ESP32 with ESP-IDF, ESP8266 and RP2040, and host tests cover frames at every bit offset, bad checksums and wrong counter echoes.