Pioneer WYT mini split wifi integration

Glad to help, I just pushed a fix for the swing, frost prevention, and fan speed bugs.

My specific unit did not have Gen mode in the Tuya app. If you know how to use a logic analyzer and can get the rx and tx codes used when activating gen mode I could look into adding them.

Amazing!
I was going to say that there were still a few bugs; but you got em!
A million thanks!

So glad I found this thread! I got one of the Quantum Hyperformance mini splits along with the SLWF-01Pro. After re-pinning the USB cable it powered up fine and I got it adopted to my Wifi network.

ESPHome discovered it and I see the following:

As you can see, its running ESPHome 2024.4.2.

My issue is that none of the controls work. Do I need to update the firmware to get it going? What about a yml file, or is this supposed to just work out of the box?

As far as updating the firmware, looking at the instructions here:

They talk about connecting the SLWF-01Pro to a Type C plug. I'm confused since the dongle has a USB 2.0, same as the old laptop I was planning to use to flash it with.

So do I need a USB 2.0 to USB C cable and use a computer with a USB C port to flash this thing?

Thanks!

Installed Samba share and then modifed and copied the greenbean yaml file here:

I also realized I can point a browser directly to the dongle and was then able to update the firmware there to version 2.3 (latest I could find online).

But I still get noting but handshake errors:

Also, ESPHome still shown I'm running the 2.1 firmware. I'll keep digging, this is all new to me, having only just installed HA less than a week ago.

Hooked up the slwp-01pro to my htpc using a c-type cable (didn't realize there's a c-type connector onboard. Was then able to update the firmware to 2.4 and it took and shows as such in HA ESPHome now:

Was also able to tweak the yaml so that it could compile. Had to get rid of the deprecated:

platform: ESP8266

And instead use:

esp8266:
board: esp12e

Also had to add:

use_address: 10.0.10.50 (the static IP I assigned to the dongle)

Still would not communicate, so I changed the baudrate to 115200. But alas, still no connection.

Unit came with the newer TCWBR-US3. That worked fine with Pioneer Air, but for some reason I can't get it to communicate with the slwp-01pro on the 2.4 firmware and 115200.

EDIT:

I tried using Refuge's yaml and I think that basically killed my dongle. I can't point a browser to it anymore and ESPHome no longer sees it.

I'm thinking this is what did it in:

esp8266:
board: esp01_1m

It was:

esp8266:
board: esp12e

Guess these Pioneer Quantum Hyperformance just don't work with the slwf-01pro, just the older generation units.

has anyone had success getting the tcbwr-us3 connected through tuya local on the pioneer wyt? i went through a huge loop to try to get this done but it looks like the local ports are not accessible on this dongle.

alternatively, does anyone know if the tcbwr-us1 is compatible with the wyt devices?

or i guess finally, the last direction is to re-pin the usb cable and use the slwf-01pro instead. i don't really want to go through and alter the device.

just trying to get a wrap on all the good information in this thread.

I can confirm @kyleteal repo works with the official Pioneer TST-DIAWIFITPD Wifi module on my Pioneer Diamante Pro (This is a brand new unit). I also tried the SLWF-01PRO with no luck there must be something different with the UART chip?

I did have to make a change to the code. The RX buffer was not working.

pioneer_minisplit.h

// RX buffer (status responses are ~64 bytes; extra headroom avoids overflow)
uint8_t rx_buffer_[128];
static const size_t RX_BUFFER_SIZE = 128;

pioneer_minisplit.cpp

// Read incoming data
while (this->available()) {
  uint8_t byte;
  this->read_byte(&byte);

  // Mid-frame resync: a new 0xBB starts a fresh frame
  if (byte == 0xBB && this->rx_index_ > 0) {
    this->rx_index_ = 0;
  }

  if (this->rx_index_ == 0 && byte != 0xBB) {
    continue;
  }

  if (this->rx_index_ >= RX_BUFFER_SIZE) {
    ESP_LOGW(TAG, "RX buffer overflow");
    this->rx_index_ = 0;
  }

  this->rx_buffer_[this->rx_index_++] = byte;
  this->last_rx_time_ = now;

  if (this->rx_index_ >= 5) {
    uint8_t payload_len = this->rx_buffer_[4];
    size_t expected = 5 + payload_len + 1;

    // Status payload is typically 0x3A (58); reject impossible lengths
    if (payload_len > 120) {
      this->rx_index_ = 0;
      continue;
    }

    if (this->rx_index_ >= expected) {
      this->process_packet_(this->rx_buffer_, expected);
      this->rx_index_ = 0;
    }
  }
}

if (this->rx_index_ > 0 && (now - this->last_rx_time_) > RX_TIMEOUT) {
  this->rx_index_ = 0;
}

Has anyone gotten these dongles with the stock firmware, or with esp home, to work with the WS012GMFI22HLD? It looks physically identical to the WYT series, however I suspect either the uart address changed or the command format over i2c changed because I get the same handshake failure others see with other models.

Is there a way I can trace the leads to try to reverse the command format?

I’ve been messing with this for a couple weeks now. I’ve tried the Kyle teal repository setup and I’m getting RX overflow constantly and I tried Mike Smitty and when I used that one I get a checksums mismatch.
I can clearly see the commands when I press buttons under Mike Smitty’s with the remote so I know I’ve got some sort of communication

You don’t need to buy any expensive wifi device, can try my free project, I’m sure it will work.
No need to install any plug-in or software or setup any account, it’s plug n play.

I let my my air conditioner and ESP home sit overnight and I came back to it today to realize the errors have gone away and the system is working and responding to climate controls but it’s not displaying the correct temperature or the status of fan speed along with outdoor temperature is wrong and it’s not showing power usage


I’m using Mike Smitty’s yaml configuration. Is there anything I can change to fix some of the sensors?


This is the yaml that I’m using currently

UPDATE: Just spoke with Pioneer, turns out I need this usb dongle:
BLE Dongle for Pioneer® WYT/WT Series

Now it’s confusing, do I try the midea or tuya control method?

Original:
This is confusing. I’m supposed to have type: WYT-24 but I have a USB port on my model, the info is this:

  1. Package Part Number: WYT012GLSI24RL-10S
  2. Indoor unit: WT012GLSI24HLG
  3. Outdoor unit: YN012GLSI24RPG

There is no “recess” in the interior of the unit for the wifi module.

I was looking forward to doing the esphome integration with it and with device builder, but not sure what to do now. Should the wifi module still work for me? If so I’ll go ahead and get one on order to flash with esphome, kindof strange there’s no place to put it though. Also I did buy this 1 year ago, not sure if they’ve changed the unit’s design since then.

I took apart my USB dongle for the pioneer and it seems to have a:
WBR3 Module
integrated RF chip (W701-VA2-CG),
low-power KM4 microcontroller unit (MCU),
WLAN MAC, a 1T1R WLAN module, 256-KB static random-access memory (SRAM), 2-MB flash memory,

Unfortunately, I don’t think this one is flashable. I’d love to hear if someone else has had success flashing it! But it seems I’m going to get the:
SMARTLIGHT SLWF-01 Pro
and flash that with ESPHome to get it working locally.

I think my model is one where I’ll have to re pin the USB cable. I’ll confirm when I get it working.

If I’m wrong about anything please feel free to let me know! I’d love to hear if someone was able to flash the OEM usb dongle. Unfortunately I can’t fir the wifi module itself in my unit, no room. But I’m hoping the SMARTLIGHT SLWF-01 Pro will work.

Ok I repinned the usb connector, with the new module I still get:

INFO ESPHome 2026.8.0
INFO Loaded validated config cache for pioneer-minisplit.yaml, skipping validation.
INFO Starting log output from 192.168.1.135 using esphome API
INFO Successfully resolved pioneer-minisplit @ 192.168.1.135 in 0.001s
INFO Successfully connected to pioneer-minisplit @ 192.168.1.135 in 0.023s
INFO Successful handshake with pioneer-minisplit @ 192.168.1.135 in 2.626s
[22:14:39.584][I][app:151]: ESPHome version 2026.7.4 compiled on 2026-08-19 17:07:19 -0400
[22:14:39.584][C][logger:223]: Logger:
[22:14:39.584][C][logger:223]:   Max Level: DEBUG
[22:14:39.584][C][logger:223]:   Initial Level: DEBUG
[22:14:39.670][C][logger:230]:   Log Baud Rate: 115200
[22:14:39.670][C][logger:230]:   Hardware UART: UART0
[22:14:39.795][C][uart.arduino_esp8266:140]: UART Bus:
[22:14:39.795][C][uart.arduino_esp8266:131]:   TX Pin: GPIO1
[22:14:39.893][C][uart.arduino_esp8266:131]:   RX Pin: GPIO3
[22:14:39.953][C][uart.arduino_esp8266:144]:   RX Buffer Size: 256
[22:14:40.024][C][uart.arduino_esp8266:146]:   Baud Rate: 9600 baud
[22:14:40.024][C][uart.arduino_esp8266:146]:   Data Bits: 8
[22:14:40.024][C][uart.arduino_esp8266:146]:   Parity: NONE
[22:14:40.024][C][uart.arduino_esp8266:146]:   Stop bits: 1
[22:14:40.109][C][uart.arduino_esp8266:153]:   Using hardware serial interface.
[22:14:40.248][W][uart.arduino_esp8266:171]:   You're using the same serial port for logging and the UART component. Please disable logging over the serial port by setting logger->baud_rate to 0.
[22:14:40.526][D][pioneer_minisplit:145]: Sent heartbeat
[22:14:40.526][W][component:473]: pioneer_minisplit took a long time for an operation (143 ms), max is 50 ms
[22:14:40.710][C][pioneer_minisplit:062]: Pioneer Mini Split:
[22:14:40.710][C][pioneer_minisplit:063]:   Protocol: 9600 8E1 (Even parity), XOR checksum
[22:14:40.710][E][uart:031]:   Invalid parity: Integration requested parity EVEN but you have NONE!
[22:14:40.951][C][captive_portal:141]: Captive Portal:
[22:14:40.951][C][wifi:1556]: WiFi:
[22:14:40.951][C][wifi:1556]:   Local MAC: C4:D8:D5:1C:BB:8E
[22:14:40.951][C][wifi:1556]:   Connected: YES
[22:14:40.951][C][wifi:1259]:   IP Address: 192.168.1.135
[22:14:41.078][C][wifi:1270]:   SSID: 'OpenWrt2.4'
[22:14:41.078][C][wifi:1270]:   BSSID: C8:9E:43:E2:DB:36
[22:14:41.078][C][wifi:1270]:   Hostname: 'pioneer-minisplit'
[22:14:41.078][C][wifi:1270]:   Signal strength: -44 dB ▂▄▆█
[22:14:41.078][C][wifi:1270]:   Channel: 1
[22:14:41.078][C][wifi:1270]:   Subnet: 255.255.255.0
[22:14:41.078][C][wifi:1270]:   Gateway: 192.168.1.1
[22:14:41.078][C][wifi:1270]:   DNS1: 192.168.1.2
[22:14:41.078][C][wifi:1270]:   DNS2: 0.0.0.0
[22:14:41.423][C][esphome.ota:098]: Over-The-Air updates:
[22:14:41.423][C][esphome.ota:098]:   Address: pioneer-minisplit.local:8266
[22:14:41.423][C][esphome.ota:098]:   Version: 2
[22:14:41.423][C][safe_mode:058]: Safe Mode:
[22:14:41.423][C][safe_mode:058]:   Successful after: 60s
[22:14:41.423][C][safe_mode:058]:   Invoke after: 10 attempts
[22:14:41.423][C][safe_mode:058]:   Duration: 300s
[22:14:41.606][C][web_server.ota:256]: Web Server OTA
[22:14:41.606][C][api:269]: Server:
[22:14:41.606][C][api:269]:   Address: pioneer-minisplit.local:6053
[22:14:41.606][C][api:269]:   Listen backlog: 1
[22:14:41.606][C][api:269]:   Max connections: 4
[22:14:41.688][C][api:276]:   Noise encryption: YES
[22:14:42.144][C][mdns:259]: mDNS:
[22:14:42.144][C][mdns:259]:   Hostname: pioneer-minisplit
[22:14:55.396][D][pioneer_minisplit:145]: Sent heartbeat

This is with yaml:

external_components:
  - source:
      type: git
      url: https://github.com/KyleTeal/pioneer-wyt-esphome
      ref: main
    components: [pioneer_minisplit]

esphome:
  name: pioneer-minisplit
  friendly_name: pioneer-minisplit

esp8266:
  board: esp12e

logger:

api:
  encryption:
    key: ""

ota:
  - platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: pioneer-minispl Fallback Hotspot
    password: ""

captive_portal:

uart:
  id: uart_bus
  tx_pin: GPIO1
  rx_pin: GPIO3
  baud_rate: 9600

pioneer_minisplit:
  id: mini
  uart_id: uart_bus
  name: "Pioneer Mini Split"

Is there anything obviously wrong with what I’m doing here?

I tried pressing the display button 6 times, resetting the breaker, but no luck with any of the methods. It always says

[22:14:40.710][E][uart:031]: Invalid parity: Integration requested parity EVEN but you have NONE!

I’ve also tried changing the yaml:

external_components:
  - source:
      type: git
      url: https://github.com/KyleTeal/pioneer-wyt-esphome
      ref: main
    components: [pioneer_minisplit]

esphome:
  name: pioneer-minisplit
  friendly_name: pioneer-minisplit

esp8266:
  board: esp12e

logger:
  baud_rate: 0

api:
  encryption:
    key:

ota:
  - platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "pioneer-minispl Fallback Hotspot"


captive_portal:

uart:
  id: uart_bus
  tx_pin: GPIO3
  rx_pin: GPIO1
  baud_rate: 9600
  data_bits: 8
  parity: EVEN
  stop_bits: 1

pioneer_minisplit:
  id: mini
  uart_id: uart_bus
  name: "Pioneer Mini Split"

Still get:

[22:30:35.398][I][app:151]: ESPHome version 2026.8.0 compiled on 2026-08-20 22:28:22 -0400
[22:30:35.399][C][logger:223]: Logger:
[22:30:35.399][C][logger:223]:   Max Level: DEBUG
[22:30:35.399][C][logger:223]:   Initial Level: DEBUG
[22:30:35.399][C][logger:230]:   Log Baud Rate: 0
[22:30:35.399][C][logger:230]:   Hardware UART: NONE
[22:30:35.399][C][uart.arduino_esp8266:140]: UART Bus:
[22:30:35.399][C][uart.arduino_esp8266:131]:   TX Pin: GPIO3
[22:30:35.399][C][uart.arduino_esp8266:131]:   RX Pin: GPIO1
[22:30:35.399][C][uart.arduino_esp8266:144]:   RX Buffer Size: 256
[22:30:35.399][C][uart.arduino_esp8266:146]:   Baud Rate: 9600 baud
[22:30:35.399][C][uart.arduino_esp8266:146]:   Data Bits: 8
[22:30:35.399][C][uart.arduino_esp8266:146]:   Parity: EVEN
[22:30:35.399][C][uart.arduino_esp8266:146]:   Stop bits: 1
[22:30:35.399][C][uart.arduino_esp8266:155]:   Using software serial
[22:30:35.399][C][uart.arduino_esp8266:155]:   Wake on data RX: ENABLED
[22:30:35.408][C][pioneer_minisplit:062]: Pioneer Mini Split:
[22:30:35.408][C][pioneer_minisplit:063]:   Protocol: 9600 8E1 (Even parity), XOR checksum
[22:30:35.408][C][captive_portal:142]: Captive Portal:
[22:30:35.460][C][wifi:1565]: WiFi:
[22:30:35.460][C][wifi:1565]:   Connected: YES
[22:30:35.460][C][wifi:1268]:   IP Address: 192.168.1.135
[22:30:35.460][C][wifi:1279]:   SSID: 'OpenWrt2.4'
[22:30:35.460][C][wifi:1279]:   BSSID: C8:9E:43:E2:DB:36
[22:30:35.460][C][wifi:1279]:   Hostname: 'pioneer-minisplit'
[22:30:35.460][C][wifi:1279]:   Signal strength: -44 dB ▂▄▆█
[22:30:35.460][C][wifi:1279]:   Channel: 1
[22:30:35.461][C][esphome.ota:098]: Over-The-Air updates:
[22:30:35.461][C][esphome.ota:098]:   Address: pioneer-minisplit.local:8266
[22:30:35.461][C][esphome.ota:098]:   Version: 2
[22:30:35.461][C][safe_mode:058]: Safe Mode:
[22:30:35.461][C][safe_mode:058]:   Successful after: 60s
[22:30:35.461][C][safe_mode:058]:   Invoke after: 10 attempts
[22:30:35.461][C][safe_mode:058]:   Duration: 300s
[22:30:35.463][C][web_server.ota:256]: Web Server OTA
[22:30:35.480][C][api:271]: Server:
[22:30:35.480][C][api:271]:   Address: pioneer-minisplit.local:6053
[22:30:35.480][C][api:271]:   Listen backlog: 1
[22:30:35.480][C][api:271]:   Max connections: 4
[22:30:35.480][C][api:278]:   Noise encryption: YES
[22:30:35.491][C][mdns:259]: mDNS:
[22:30:35.491][C][mdns:259]:   Hostname: pioneer-minisplit
[22:30:36.029][D][pioneer_minisplit:145]: Sent heartbeat
[22:31:20.952][D][pioneer_minisplit:145]: Sent heartbeat
[22:31:23.812][I][safe_mode:154]: Boot seems successful; resetting boot loop counter
[22:31:23.812][D][pioneer_minisplit:145]: Sent heartbeat
[22:31:39.075][D][pioneer_minisplit:145]: Sent heartbeat
[22:31:41.826][W][pioneer_minisplit:636]: Ignoring command - waiting for initial state sync from HVAC
[22:31:42.125][D][pioneer_minisplit:145]: Sent heartbeat

I’ve tried swapping the rx and tx pins in the yaml but no luck there either.

Maybe I should mention my minisplit actually used the TCWBR-US3, so the tuya control iirc.

hey guys I was able to set up the SLWF-01PRO as a sniffer and found I need 115200 baud, I get similar packets as the previous posters:

[22:59:35.598][I][app:151]: ESPHome version 2026.8.0 compiled on 2026-08-20 22:55:25 -0400
[22:59:35.598][C][logger:223]: Logger:
[22:59:35.598][C][logger:223]:   Max Level: DEBUG
[22:59:35.598][C][logger:223]:   Initial Level: DEBUG
[22:59:35.599][C][logger:230]:   Log Baud Rate: 0
[22:59:35.599][C][logger:230]:   Hardware UART: NONE
[22:59:35.599][C][uart.arduino_esp8266:140]: UART Bus:
[22:59:35.599][C][uart.arduino_esp8266:131]:   TX Pin: GPIO12
[22:59:35.599][C][uart.arduino_esp8266:131]:   RX Pin: GPIO14
[22:59:35.599][C][uart.arduino_esp8266:144]:   RX Buffer Size: 256
[22:59:35.599][C][uart.arduino_esp8266:146]:   Baud Rate: 115200 baud
[22:59:35.599][C][uart.arduino_esp8266:146]:   Data Bits: 8
[22:59:35.599][C][uart.arduino_esp8266:146]:   Parity: NONE
[22:59:35.599][C][uart.arduino_esp8266:146]:   Stop bits: 1
[22:59:35.599][C][uart.arduino_esp8266:155]:   Using software serial
[22:59:35.599][C][uart.arduino_esp8266:155]:   Wake on data RX: ENABLED
[22:59:35.610][C][captive_portal:142]: Captive Portal:
[22:59:35.610][C][wifi:1565]: WiFi:
[22:59:35.655][C][web_server.ota:256]: Web Server OTA
[22:59:35.655][C][api:271]: Server:
[22:59:35.655][C][api:271]:   Address: pioneer-minisplit.local:6053
[22:59:35.655][C][api:271]:   Listen backlog: 1
[22:59:35.655][C][api:271]:   Max connections: 4
[22:59:35.655][C][api:278]:   Noise encryption: YES
[22:59:35.754][E][uart:014]: Reading from UART timed out at byte 0!
[22:59:35.755][D][sniffer:050]: RX: A5 01 8D 00 05 00 10 00 00 A0 87 00 01 00 90 4F 5A 
[22:59:35.755][C][mdns:259]: mDNS:
[22:59:35.755][C][mdns:259]:   Hostname: pioneer-minisplit
[22:59:36.161][E][uart:014]: Reading from UART timed out at byte 0!
[22:59:36.161][D][sniffer:050]: RX: A5 01 8E 00 05 00 10 00 00 A1 81 00 01 00 18 18 5A 
[22:59:36.161][E][uart:014]: Reading from UART timed out at byte 0!
[22:59:36.164][D][sniffer:050]: RX: A5 01 8D 00 05 20 10 00 00 A0 87 00 01 00 37 B3 5A 
[22:59:36.317][E][uart:014]: Reading from UART timed out at byte 0!
[22:59:36.317][D][sniffer:050]: RX: A5 01 8E 00 05 20 10 00 00 A1 81 00 01 00 BF E4 5A 
[22:59:36.725][E][uart:014]: Reading from UART timed out at byte 0!
[22:59:36.725][D][sniffer:050]: RX: A5 01 8F 00 05 00 10 00 00 A1 82 00 01 00 80 B1 5A 
[22:59:36.725][E][uart:014]: Reading from UART timed out at byte 0!
[22:59:36.728][D][sniffer:050]: RX: A5 01 90 00 05 00 10 00 00 A1 85 00 01 00 F5 2F 5A 
[22:59:36.932][E][uart:014]: Reading from UART timed out at byte 0!
[22:59:36.932][D][sniffer:050]: RX: A5 01 8F 00 05 20 10 00 00 A1 82 00 01 00 27 4D 5A 

This seems very similar to Tuya climate but not exactly.

Going to rig up a mitm sniffer later.

Here’s me going down two degrees:

ok here is me going down two degrees:

[23:01:52.972][D][sniffer:050]: RX: A5 01 01 21 A6 00 00 42 20 3F 0C 0C 00 01 01 00 02 00 00 0A 28 00 03 00 00 09 B0 00 05 00 00 0C 00 00 0D 01 00 0E 01 00 11 08 00 12 01 00 DF 01 00 C9 00 
[23:01:53.176][E][uart:014]: Reading from UART timed out at byte 0!
[23:01:53.176][D][sniffer:050]: RX: 00 17 00 00 1E 01 02 27 00 00 00 4F 01 48 01 
[23:01:53.176][D][sniffer:050]: RX: A5 01 01 21 A7 00 00 5B F0 BD 0C 0C 00 22 00 00 25 01 00 27 00 00 2D 00 00 35 00 00 38 00 00 5C 00 00 07 6C 00 39 13 02 03 07 08 09 0B 0C 0D 15 17 1F 21 
[23:01:53.481][E][uart:014]: Reading from UART timed out at byte 0!
[23:01:53.481][D][sniffer:050]: RX: 24 27 28 2A 2B 30 31 00 5E 00 00 60 00 00 0A F0 00 64 00 00 00 00 00 65 00 00 00 00 00 72 00 00 00 00 00 73 01 00 74 06 
[23:01:53.481][E][uart:014]: Reading from UART timed out at byte 0!
[23:01:53.483][D][sniffer:050]: RX: A5 01 01 21 A8 00 00 2D D1 CB 0C 0C 00 95 00 00 00 00 00 A4 00 00 BD 00 00 00 00 00 BE 00 00 00 00 00 BF 00 00 00 00 00 C0 00 00 00 00 
[23:01:53.686][E][uart:014]: Reading from UART timed out at byte 0!
[23:01:53.686][D][sniffer:050]: RX: A5 01 01 21 A9 00 00 17 BD DE 0C 0C 00 FA 00 07 3B 3B 3B 3B 3B 3B 3B 
[23:01:53.995][E][uart:014]: Reading from UART timed out at byte 0!
[23:01:53.995][D][sniffer:050]: RX: A5 01 01 21 AA 00 00 17 E3 BD 0C 0C 00 FB 00 07 3B 3B 3B 3B 3B 3B 3B 
[23:01:53.995][D][sniffer:050]: RX: A5 01 01 21 AB 00 00 44 5E 18 0C 0C 01 47 00 02 20 01 02 21 00 00 06 40 02 22 00 00 0C 1C 02 23 00 01 3B 02 24 00 02 25 00 00 7B 00 00 84 01 00 8C 00 00 
[23:01:54.299][E][uart:014]: Reading from UART timed out at byte 0!
[23:01:54.299][D][sniffer:050]: RX: 00 46 00 A0 00 00 D1 00 00 D4 00 00 D5 00 00 D6 00 
[23:01:54.299][E][uart:014]: Reading from UART timed out at byte 0!
[23:01:54.302][D][sniffer:050]: RX: A5 01 01 21 AC 00 00 12 8F 0B 0C 0C 00 D7 00 00 00 00 
[23:01:56.565][D][sniffer:050]: RX: A5 01 01 21 AD 00 00 42 77 12 0C 0C 00 01 01 00 02 00 00 0A 28 00 03 00 00 09 B0 00 05 00 00 0C 00 00 0D 01 00 0E 01 00 11 08 00 12 01 00 DF 01 00 C9 00 
[23:01:56.565][D][sniffer:050]: RX: 00 17 00 00 1E 01 02 27 00 00 00 4F 01 48 01 A5 01 01 21 AE 00 00 5B 95 CA 0C 0C 00 22 00 00 25 01 00 27 00 00 2D 00 00 35 00 00 38 00 00 5C 00 00 07 6C 
[23:01:56.570][D][sniffer:050]: RX: 00 39 13 02 03 07 08 09 0B 0C 0D 15 17 1F 21 24 27 28 2A 2B 30 31 00 5E 00 00 60 00 00 0A F0 00 64 00 00 00 00 00 65 00 00 00 00 00 72 00 00 00 00 00 73 
[23:01:56.719][E][uart:014]: Reading from UART timed out at byte 0!
[23:01:56.719][D][sniffer:050]: RX: 01 00 74 06 
[23:01:57.081][E][uart:014]: Reading from UART timed out at byte 0!
[23:01:57.081][D][sniffer:050]: RX: A5 01 01 21 AF 00 00 2D 20 9D 0C 0C 00 95 00 00 00 00 00 A4 00 00 BD 00 00 00 00 00 BE 00 00 00 00 00 BF 00 00 00 00 00 C0 00 00 00 00 
[23:01:57.081][E][uart:014]: Reading from UART timed out at byte 0!
[23:01:57.083][D][sniffer:050]: RX: A5 01 01 21 B0 00 00 17 34 2D 0C 0C 00 FA 00 07 3B 3B 3B 3B 3B 3B 3B 
[23:01:57.283][E][uart:014]: Reading from UART timed out at byte 0!
[23:01:57.283][D][sniffer:050]: RX: A5 01 01 21 B1 00 00 17 4B 8A 0C 0C 00 FB 00 07 3B 3B 3B 3B 3B 3B 3B 
[23:01:57.538][D][sniffer:050]: RX: A5 01 01 21 B2 00 00 44 06 60 0C 0C 01 47 00 02 20 01 02 21 00 00 06 40 02 22 00 00 0C 1C 02 23 00 01 3B 02 24 00 02 25 00 00 7B 00 00 84 01 00 8C 00 00 
[23:01:57.538][E][uart:014]: Reading from UART timed out at byte 0!
[23:01:57.538][D][sniffer:050]: RX: 00 46 00 A0 00 00 D1 00 00 D4 00 00 D5 00 00 D6 00 
[23:01:58.167][E][uart:014]: Reading from UART timed out at byte 0!
[23:01:58.168][D][sniffer:050]: RX: A5 01 01 21 B3 00 00 12 AB B8 0C 0C 00 D7 00 00 00 00 
[23:02:03.055][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:03.058][D][sniffer:050]: RX: A5 01 EB 00 05 00 10 00 00 A1 02 00 01 AA F7 1D 5A 
[23:02:03.260][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:03.260][D][sniffer:050]: RX: A5 01 EC 00 05 00 10 00 00 A1 01 00 01 3C 87 F5 5A 
[23:02:03.669][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:03.669][D][sniffer:050]: RX: A5 01 EB 00 05 20 10 00 00 A1 02 00 01 AA 50 E1 5A 
[23:02:03.669][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:03.671][D][sniffer:050]: RX: A5 01 EC 00 05 20 10 00 00 A1 01 00 01 3C 20 09 5A 
[23:02:03.877][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:03.877][D][sniffer:050]: RX: A5 01 ED 00 05 00 10 00 00 A1 04 00 01 F0 20 05 5A 
[23:02:04.217][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:04.217][D][sniffer:050]: RX: A5 01 EE 00 05 00 10 00 00 A1 04 00 01 FB 94 F1 5A 
[23:02:04.293][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:04.297][D][sniffer:050]: RX: A5 01 ED 00 05 20 10 00 00 A1 04 00 01 F0 87 F9 5A 
[23:02:04.490][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:04.490][D][sniffer:050]: RX: A5 01 EE 00 05 20 10 00 00 A1 04 00 01 FB 33 0D 5A 
[23:02:04.742][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:04.742][D][sniffer:050]: RX: A5 01 EF 00 05 00 10 00 00 A0 03 00 01 00 32 8C 5A 
[23:02:04.849][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:04.851][D][sniffer:050]: RX: A5 01 F0 00 05 00 10 00 00 A0 06 00 01 00 AA 7A 5A 
[23:02:05.055][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:05.056][D][sniffer:050]: RX: A5 01 EF 00 05 20 10 00 00 A0 03 00 01 00 95 70 5A 
[23:02:05.267][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:05.267][D][sniffer:050]: RX: A5 01 F0 00 05 20 10 00 00 A0 06 00 01 00 0D 86 5A 
[23:02:05.464][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:05.466][D][sniffer:050]: RX: A5 01 F1 00 05 00 10 00 00 A0 87 00 01 00 02 83 5A 
[23:02:05.670][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:05.670][D][sniffer:050]: RX: A5 01 F2 00 05 00 10 00 00 A1 81 00 01 00 8A D4 5A 
[23:02:06.077][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:06.078][D][sniffer:050]: RX: A5 01 F1 00 05 20 10 00 00 A0 87 00 01 00 A5 7F 5A 
[23:02:06.078][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:06.080][D][sniffer:050]: RX: A5 01 F2 00 05 20 10 00 00 A1 81 00 01 00 2D 28 5A 
[23:02:06.287][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:06.287][D][sniffer:050]: RX: A5 01 F3 00 05 00 10 00 00 A1 82 00 01 00 12 7D 5A 
[23:02:06.642][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:06.643][D][sniffer:050]: RX: A5 01 F4 00 05 00 10 00 00 A1 85 00 01 00 4B 1B 5A 
[23:02:06.643][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:06.645][D][sniffer:050]: RX: A5 01 F3 00 05 20 10 00 00 A1 82 00 01 00 B5 81 5A 
[23:02:06.848][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:06.849][D][sniffer:050]: RX: A5 01 F4 00 05 20 10 00 00 A1 85 00 01 00 EC E7 5A 
[23:02:08.103][D][sniffer:050]: RX: A5 01 01 21 B4 00 00 42 6E 99 0C 0C 00 01 01 00 02 00 00 09 C4 00 03 00 00 09 A6 00 05 00 00 0C 00 00 0D 01 00 0E 01 00 11 08 00 12 01 00 DF 00 00 C9 00 
[23:02:08.103][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:08.103][D][sniffer:050]: RX: 00 17 00 00 1E 01 02 27 00 00 00 4D 01 48 01 
[23:02:08.292][D][sniffer:050]: RX: A5 01 01 21 B5 00 00 5B 3A 53 0C 0C 00 22 00 00 25 01 00 27 00 00 2D 00 00 35 00 00 38 00 00 5C 00 00 07 6C 00 39 13 02 03 07 08 09 0B 0C 0D 15 17 1F 21 
[23:02:08.308][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:08.308][D][sniffer:050]: RX: 24 27 28 2A 2B 30 31 00 5E 00 00 60 00 00 0A F0 00 64 00 00 00 00 00 65 00 00 00 00 00 72 00 00 00 00 00 73 01 00 74 06 
[23:02:08.667][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:08.667][D][sniffer:050]: RX: A5 01 01 21 B6 00 00 2D 69 A4 0C 0C 00 95 00 00 00 00 00 A4 00 00 BD 00 00 00 00 00 BE 00 00 00 00 00 BF 00 00 00 00 00 C0 00 00 00 00 
[23:02:08.667][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:08.671][D][sniffer:050]: RX: A5 01 01 21 B7 00 00 17 46 83 0C 0C 00 FA 00 07 3B 3B 3B 3B 3B 3B 3B 
[23:02:08.873][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:08.873][D][sniffer:050]: RX: A5 01 01 21 B8 00 00 17 DC 78 0C 0C 00 FB 00 07 3B 3B 3B 3B 3B 3B 3B 
[23:02:09.127][D][sniffer:050]: RX: A5 01 01 21 B9 00 00 44 64 87 0C 0C 01 47 00 02 20 01 02 21 00 00 06 40 02 22 00 00 0C 1C 02 23 00 01 3B 02 24 00 02 25 00 00 7B 00 00 84 01 00 8C 00 00 
[23:02:09.127][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:09.127][D][sniffer:050]: RX: 00 46 00 A0 00 00 D1 00 00 D4 00 00 D5 00 00 D6 00 
[23:02:09.292][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:09.292][D][sniffer:050]: RX: A5 01 01 21 BA 00 00 12 B3 65 0C 0C 00 D7 00 00 00 00 
[23:02:09.437][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:09.442][D][sniffer:050]: RX: A5 01 01 21 BB 00 00 18 DE B4 0C 0C 00 02 00 00 08 34 02 27 00 00 00 47 
[23:02:09.642][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:09.642][D][sniffer:050]: RX: A5 01 00 21 00 00 00 0C D3 7D 0C 0C 
[23:02:11.708][D][sniffer:050]: RX: A5 01 01 21 BC 00 00 42 EF FA 0C 0C 00 01 01 00 02 00 00 08 34 00 03 00 00 09 A6 00 05 00 00 0C 00 00 0D 01 00 0E 01 00 11 08 00 12 01 00 DF 00 00 C9 00 
[23:02:11.708][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:11.708][D][sniffer:050]: RX: 00 17 00 00 1E 01 02 27 00 00 00 47 01 48 01 
[23:02:11.902][D][sniffer:050]: RX: A5 01 01 21 BD 00 00 5B 52 2B 0C 0C 00 22 00 00 25 01 00 27 00 00 2D 00 00 35 00 00 38 00 00 5C 00 00 07 6C 00 39 13 02 03 07 08 09 0B 0C 0D 15 17 1F 21 
[23:02:11.902][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:11.902][D][sniffer:050]: RX: 92 12 49 69 09 8A 02 5E 00 00 60 00 00 0A F0 00 64 00 00 00 00 00 65 00 00 00 00 00 72 00 00 00 00 00 73 01 00 74 06 
[23:02:12.261][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:12.261][D][sniffer:050]: RX: A5 01 01 21 BE 00 00 2D 4C D5 0C 0C 00 95 00 00 00 00 00 A4 00 00 BD 00 00 00 00 00 BE 00 00 00 00 00 BF 00 00 00 00 00 C0 00 00 00 00 
[23:02:12.262][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:12.264][D][sniffer:050]: RX: A5 01 01 21 BF 00 00 17 C1 93 0C 0C 00 FA 00 07 3B 3B 3B 3B 3B 3B 3B 
[23:02:12.467][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:12.468][D][sniffer:050]: RX: A5 01 01 21 C0 00 00 17 01 6F 0C 0C 00 FB 00 07 3B 3B 3B 3B 3B 3B 3B 
[23:02:12.722][D][sniffer:050]: RX: A5 01 01 21 C1 00 00 44 C9 B3 0C 0C 01 47 00 02 20 01 02 21 00 00 06 40 02 22 00 00 0C 1C 02 23 00 01 3B 02 24 00 02 25 00 00 7B 00 00 84 01 00 8C 00 00 
[23:02:12.722][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:12.722][D][sniffer:050]: RX: 00 46 00 A0 00 00 D1 00 00 D4 00 00 D5 00 00 D6 00 
[23:02:12.941][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:12.941][D][sniffer:050]: RX: A5 01 01 21 C2 00 00 12 2C 7D 0C 0C 00 D7 00 00 00 00 
[23:02:18.035][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:18.041][D][sniffer:050]: RX: A5 01 F5 00 05 00 10 00 00 A1 02 00 01 AA D0 DB 5A 
[23:02:18.240][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:18.240][D][sniffer:050]: RX: A5 01 F6 00 05 00 10 00 00 A1 01 00 01 3C AD E7 5A 
[23:02:18.492][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:18.493][D][sniffer:050]: RX: A5 01 F5 00 05 20 10 00 00 A1 02 00 01 AA 77 27 5A 
[23:02:18.650][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:18.654][D][sniffer:050]: RX: A5 01 F6 00 05 20 10 00 00 A1 01 00 01 3C 0A 1B 5A 
[23:02:18.855][E][uart:014]: Reading from UART timed out at byte 0!
[23:02:18.855][D][sniffer:050]: RX: A5 01 F7 00 05 00 10 00 00 A1 04 00 01 F0 0A 17 5A 

in cooling mode

I just got this working yesterday on my WYT Dynamante (probably sp?? don’t care).

The CN16 port on my board was NOT labeled, however from what I can see it’s the only port of that size and shape so just plug it in where it fits. There was some text on the board with the pinout 5V, TX, RX, GND which gave it away. No need to yank the whole board out (I spent 15 minutes trying to finagle the thing without disconnecting any wires), it was towards the front.

I was in a rush so I just got it hooked up to the Tuya app on my phone and used the Tuya integration in HA… super intuitive, no instructions needed (I did however have to manually select HVAC), however this is the cloud version unfortunately.

I’m gonna keep it cloud for now. It’s nice to know if Tuya pulls or charges for cloud I can just swap to local.

After struggling to get things working again post tinkering… I came to realize that the dongle did not communicate with the unit if the door was open.

I closed the door frustrated and the logs immediately spilled out usable info. Everything worked in HA.

I hope that saves someone some frustration!

It looks like there might be an issue with decoding the messages on Mike Smitty’s code. I’m not sure how to troubleshoot this if there is something obviously wrong with my setup. I am using a SLWF-01PRO. Here is my log:

INFO ESPHome 2026.8.2
INFO Loaded validated config cache for mini-split.yaml, skipping validation.
INFO Starting log output from 10.0.20.47 using esphome API
INFO Successfully resolved pioneerwyt-ac @ 10.0.20.47 in 0.000s
INFO Successfully connected to pioneerwyt-ac @ 10.0.20.47 in 11.195s
INFO Successful handshake with pioneerwyt-ac @ 10.0.20.47 in 0.044s
[21:11:26.868][I][app:151]: ESPHome version 2026.8.2 compiled on 2026-09-15 21:09:41 -0700
[21:11:26.868][C][logger:223]: Logger:
[21:11:26.868][C][logger:223]:   Max Level: DEBUG
[21:11:26.868][C][logger:223]:   Initial Level: DEBUG
[21:11:26.868][C][logger:230]:   Log Baud Rate: 115200
[21:11:26.868][C][logger:230]:   Hardware UART: UART0
[21:11:26.934][C][uart.arduino_esp8266:140]: UART Bus:
[21:11:26.934][C][uart.arduino_esp8266:131]:   TX Pin: GPIO12
[21:11:26.934][C][uart.arduino_esp8266:131]:   RX Pin: GPIO14
[21:11:26.935][C][uart.arduino_esp8266:144]:   RX Buffer Size: 256
[21:11:26.935][C][uart.arduino_esp8266:146]:   Baud Rate: 9600 baud
[21:11:26.935][C][uart.arduino_esp8266:146]:   Data Bits: 8
[21:11:26.935][C][uart.arduino_esp8266:146]:   Parity: EVEN
[21:11:26.935][C][uart.arduino_esp8266:146]:   Stop bits: 1
[21:11:26.935][C][uart.arduino_esp8266:155]:   Using software serial
[21:11:26.935][C][uart.arduino_esp8266:155]:   Wake on data RX: ENABLED
[21:11:26.958][C][pioneer.climate:458]: WytClimate 'My Heatpump'
[21:11:26.966][C][captive_portal:142]: Captive Portal:
[21:11:27.017][C][wifi:1565]: WiFi:
[21:11:27.017][C][wifi:1565]:   Local MAC: *****
[21:11:27.017][C][wifi:1565]:   Connected: YES
[21:11:27.018][C][wifi:1268]:   IP Address: 10.0.20.47
[21:11:27.018][C][wifi:1279]:   SSID: '****'
[21:11:27.018][C][wifi:1279]:   BSSID: ****
[21:11:27.018][C][wifi:1279]:   Hostname: 'pioneerwyt-ac'
[21:11:27.018][C][wifi:1279]:   Signal strength: -69 dB ▂▄▆█
[21:11:27.018][C][wifi:1279]:   Channel: 6
[21:11:27.018][C][wifi:1279]:   Subnet: 255.255.255.0
[21:11:27.018][C][wifi:1279]:   Gateway: 10.0.20.1
[21:11:27.018][C][wifi:1279]:   DNS1: 10.0.20.1
[21:11:27.018][C][wifi:1279]:   DNS2: 0.0.0.0
[21:11:27.019][C][web_server:418]: Web Server:
[21:11:27.019][C][web_server:418]:   Address: pioneerwyt-ac.local:80
[21:11:27.020][C][esphome.ota:098]: Over-The-Air updates:
[21:11:27.020][C][esphome.ota:098]:   Address: pioneerwyt-ac.local:8266
[21:11:27.020][C][esphome.ota:098]:   Version: 2
[21:11:27.035][C][safe_mode:058]: Safe Mode:
[21:11:27.035][C][safe_mode:058]:   Successful after: 60s
[21:11:27.035][C][safe_mode:058]:   Invoke after: 10 attempts
[21:11:27.035][C][safe_mode:058]:   Duration: 300s
[21:11:27.036][C][web_server.ota:256]: Web Server OTA
[21:11:27.045][C][api:271]: Server:
[21:11:27.045][C][api:271]:   Address: pioneerwyt-ac.local:6053
[21:11:27.045][C][api:271]:   Listen backlog: 1
[21:11:27.045][C][api:271]:   Max connections: 4
[21:11:27.068][C][api:283]:   Noise encryption: NO
[21:11:27.078][C][mdns:259]: mDNS:
[21:11:27.078][C][mdns:259]:   Hostname: pioneerwyt-ac
[21:11:27.166][D][uart_debug:157]: >>> "\xBB\x00\x01\x04\x02\x01\x00\xBD"
[21:11:27.294][W][pioneer.climate:067]: Invalid response header: 0x9e
[21:11:27.295][E][pioneer.climate:171]: Status query timed out
[21:11:27.295][D][uart_debug:157]: <<< "\x9Ef\x00\x00`\xF8x\x00\x00\x00x\x80\x00\x00\x00\x00\x00\x00\x00\x00\x80\x98\x00\x00`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x98\x86\x18\x00\x80`\x98\x86x\x00\x00\x00\x00\x00\x00`\x18\x00\x00`\x18\x1E\x80\x80\x00\x00\x98\x1E\x00\x00\x00\x00\x00\x00\x00\x00\x00`\xE0x"
[21:11:29.184][D][uart_debug:157]: >>> "\xBB\x00\x01\x04\x02\x01\x00\xBD"
[21:11:29.184][W][pioneer.climate:095]: Checksum mismatch: 0x0 != 0xec
[21:11:29.185][E][pioneer.climate:171]: Status query timed out
[21:11:29.578][D][uart_debug:157]: <<< "\xBB\x01\x00\x04>\x04\x00 \x84\x00\xE0\x00\x00\x00\x00\x00\x00x\x030\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\xFFB\x00\x00())\x00\x00\x80\x00\x00\x00\x00t\x00\x00\x00D@\b\b\x00\x00z\x00\x00\x00\x00\x00"
[21:11:30.138][D][api:255]: Accept 10.0.20.2
[21:11:30.139][D][api.connection:2593]: Home Assistant 2026.9.2 (10.0.20.2): connected
[21:11:31.176][D][uart_debug:157]: >>> "\xBB\x00\x01\x04\x02\x01\x00\xBD"
[21:11:31.176][W][pioneer.climate:067]: Invalid response header: 0x0
[21:11:31.177][E][pioneer.climate:171]: Status query timed out
[21:11:31.602][D][uart_debug:157]: <<< "\x00\x00\x00\x000\x10\xCC\xBB\x01\x00\x04>\x04\x00 \x84\x00\xE0\x00\x00\x00\x00\x00\x00x\x030\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\xFFB\x00\x00())\x00\x00\x80\x00\x00\x00\x00t\x00\x00\x00D@\b\b\x00\x00z\x00\x00\x00\x00\x00\x00\x00\x00\x000\x10\xCC"
[21:11:33.178][D][uart_debug:157]: >>> "\xBB\x00\x01\x04\x02\x01\x00\xBD"
[21:11:33.178][W][pioneer.climate:095]: Checksum mismatch: 0x0 != 0xec
[21:11:33.198][E][pioneer.climate:171]: Status query timed out
[21:11:33.653][D][uart_debug:157]: <<< "\xBB\x01\x00\x04>\x04\x00 \x84\x00\xE0\x00\x00\x00\x00\x00\x00x\x030\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\xFFB\x00\x00())\x00\x00\x80\x00\x00\x00\x00t\x00\x00\x00D@\b\b\x00\x00z\x00\x00\x00\x00\x00"
[21:11:35.166][D][uart_debug:157]: >>> "\xBB\x00\x01\x04\x02\x01\x00\xBD"
[21:11:35.186][W][pioneer.climate:067]: Invalid response header: 0x0
[21:11:35.186][E][pioneer.climate:171]: Status query timed out
[21:11:35.296][D][uart_debug:157]: <<< "\x00\x00\x00\x000\x10\xCC\xBB\x01\x00\x04>\x04\x00 \x84\x00\xE0\x00\x00\x00\x00\x00\x00x\x030\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\xFFB\x00\x00())\x00\x00\x80\x00\x00\x00\x00t\x00\x00\x00D@\b\b\x00\x00z\x00\x00\x00\x00\x00\x00\x00\x00\x000\x10\xCC"
[21:11:37.192][D][uart_debug:157]: >>> "\xBB\x00\x01\x04\x02\x01\x00\xBD"
[21:11:37.192][W][pioneer.climate:095]: Checksum mismatch: 0x0 != 0xec
[21:11:37.192][E][pioneer.climate:171]: Status query timed out
[21:11:37.702][D][uart_debug:157]: <<< "\xBB\x01\x00\x04>\x04\x00 \x84\x00\xE0\x00\x00\x00\x00\x00\x00x\x030\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\xFFB\x00\x00())\x00\x00\x80\x00\x00\x00\x00t\x00\x00\x00D@\b\b\x00\x00z\x00\x00\x00\x00\x00"
[21:11:39.188][D][uart_debug:157]: >>> "\xBB\x00\x01\x04\x02\x01\x00\xBD"
[21:11:39.188][W][pioneer.climate:067]: Invalid response header: 0x0
[21:11:39.192][E][pioneer.climate:171]: Status query timed out
[21:11:39.731][D][uart_debug:157]: <<< "\x00\x00\x00\x000\x10\xCC\xBB\x01\x00\x04>\x04\x00 \x84\x00\xE0\x00\x00\x00\x00\x00\x00x\x030\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\xFFB\x00\x00())\x00\x00\x80\x00\x00\x00\x00t\x00\x00\x00D@\b\b\x00\x00z\x00\x00\x00\x00\x00\x00\x00\x00\x000\x10\xCC"
[21:11:41.169][D][uart_debug:157]: >>> "\xBB\x00\x01\x04\x02\x01\x00\xBD"
[21:11:41.185][W][pioneer.climate:095]: Checksum mismatch: 0x0 != 0xec
[21:11:41.185][E][pioneer.climate:171]: Status query timed out

and here is the configuration I’m using:

esphome:
  name: pioneerwyt-ac
  friendly_name: PioneerWYT_AC

esp8266:
  board: esp12e

external_components:
  source: github://mikesmitty/esphome-components@main
  components: [ pioneer, remote_base ]
    
climate:
  - platform: pioneer
    name: My Heatpump
    beeper: true # Feedback beep when commands are sent
    display: true # Show temperature on the LED display
    # Optional sensors
    defrost_status:
      name: Defrosting
    indoor_fan_speed:
      name: Indoor Fan Speed
    outdoor_fan_speed:
      name: Outdoor Fan Speed
    outdoor_temperature:
      name: Outdoor Temperature
    power_usage:
      name: Power Usage

uart:
  tx_pin:
    number: 12
    inverted: false
  rx_pin: 14 # Hardware-dependent
  baud_rate: 9600
  parity: EVEN
  rx_buffer_size: 256B

  debug:
    direction: BOTH
    dummy_receiver: false
    after:
      delimiter: \n
    sequence:
      - lambda: "UARTDebug::log_string(direction, bytes);"
  data_bits: 8
  stop_bits: 1

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  - platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Pioneerwyt-Ac"

captive_portal:

web_server:
  port: 80  

I was able to get KyleTeal’s library to sort of work but I had to expand the buffer size he has hardcoded since my minisplit seems to be sending more information than his. I have no idea what this new data contains and I have no idea how I would reverse engineer it.