Fujitsu AC (heat pump) integration via ESPHome [ESP32]

Hi there amazing thread! Hoping to get some guidance on my setup.

  • Fujitsu AUU7RLF ceiling cassette with UTY-RNNUM wired wall controller
  • Purpose-built ESP32-C3 + LIN transceiver board ("Fuji_LG_Lino_Uarto_Mod2.0", thank you nathansags!), wired in parallel to the UTY-RNNUM's 3-wire (Red/Black/White = 12V/GND/LBUS) terminals
  • controller_address: 1 (secondary), UTY-RNNUM DIP switch 1 (Dual remote controller) = ON, switch 2 (Master/Slave) = OFF (UTY-RNNUM stays master)

When I power up, seems fine for ~75 seconds, Home Assistant sees it fine, then I get a flashing "Er 12". I am just using the yaml that nathansags. I am including both that and the (truncated) logs below where you can see when the error hits.

Anyone out there have any ideas of have I might be able to get this working? Sorry in advance if the answer is clear as day in this thread and I somehow missed it!

LOGS

INFO Successfully resolved mbr-ac-controller @ 192.168.1.72 in 25.020s
INFO Successfully connected to mbr-ac-controller @ 192.168.1.72 in 0.008s
INFO Successful handshake with mbr-ac-controller @ 192.168.1.72 in 0.093s
[11:46:03.026][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 07 17 A0 00 20
[11:46:03.251][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 20 A1 00 07 17 80 2E 00
[11:46:03.320][D][esphome::fujitsu_general_airstage_h_controller:201]: TX: 21 A2 00 07 17 20 00 00
[11:46:03.380][S][text_sensor]: 'Initialization Stage' >> '(4/5)'
[11:46:03.381][S][climate]: '' >>
[11:46:03.381][S][climate]:   Mode: COOL
[11:46:03.381][S][climate]:   Fan Mode: AUTO
[11:46:03.381][S][climate]:   Current Temperature: 23.00°C
[11:46:03.381][S][climate]:   Target Temperature: 23.00°C
[11:46:04.150][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 07 17 A0 03 20
[11:46:04.154][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 20 81 00 07 17 80 2E 00
[11:46:04.256][S][text_sensor]: 'Initialization Stage' >> '(5/5)'
[11:46:04.257][S][binary_sensor]: 'Connected' >> ON
[11:46:04.257][S][text_sensor]: 'Supported Features' >> 'Mode: Auto Heat Cool Dry Fan | Fan: Auto High Medium Low | Economy'
[11:46:04.585][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 07 17 A0 03 20
[11:46:04.806][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 20 81 00 07 17 80 2E 00
[11:46:05.222][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 07 17 A0 03 20
...
[11:46:55.957][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 07 17 A0 03 20
[11:46:56.179][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 20 81 00 07 17 80 2E 00
[11:46:56.599][I][safe_mode:142]: Boot seems successful; resetting boot loop counter
[11:46:56.604][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 07 17 A0 03 20
[11:46:56.817][D][preferences:148]: Writing 1 items: 0 cached, 1 written, 0 failed
[11:46:56.829][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 20 81 00 07 17 80 2E 00
[11:46:57.306][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 80 40 80 00 00 00 00
[11:46:57.525][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 07 17 A0 03 20
[11:46:57.748][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 20 81 00 07 17 80 2E 00
[11:46:58.209][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 07 17 A0 03 20
[11:46:58.429][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 20 81 00 07 17 80 2E 00
[11:46:58.673][S][sensor]: 'Uptime' >> 62 s
[11:46:58.852][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 07 17 A0 03 20
[11:46:59.074][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 20 81 00 07 17 80 2E 00
[11:46:59.539][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 07 17 A0 03 20
[11:46:59.764][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 20 81 00 07 17 80 2E 00
...
[11:47:58.098][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 10 11 12 00 00 00
[11:47:58.105][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 20 81 00 07 17 80 2E 00
[11:47:58.183][S][binary_sensor]: 'Error' >> ON
[11:47:58.184][S][text_sensor]: 'Error Code' >> '00 12'
[11:47:58.499][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 87 17 A0 03 20
[11:47:58.665][S][sensor]: 'Uptime' >> 122 s
[11:47:58.720][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 20 81 00 07 17 80 2E 00
[11:47:59.147][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 87 17 A0 03 20
...
[11:48:57.841][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 87 17 A0 03 20
[11:48:58.060][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 20 81 00 07 17 80 2E 00
[11:48:58.691][S][sensor]: 'Uptime' >> 182 s
[11:48:58.697][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 00 A0 00 87 17 A0 03 20
[11:48:58.701][D][esphome::fujitsu_general_airstage_h_controller:201]: RX: 20 81 00 07 17 80 2E 00

YAML

esphome:
  name: halcyon-controller
  friendly_name: Fujitsu
  includes:
#    - fujitsu-halcyon/FujitsuClimate.h
#    - fujitsu-halcyon/FujitsuClimate.cpp
#    - fujitsu-halcyon/FujiHeatPump.h
#    - fujitsu-halcyon/FujiHeatPump.cpp

# Board type
esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: esp-idf

 # Enable logging
logger:
  level: DEBUG

# Enable Home Assistant API
api:
  encryption:
    key: "62hzsOod6iaMPrFlCyR+zWDC7qREkP8kQNpLdqdRy4U="

# Web server
web_server:
  port: 80

# Over the air updates
ota:
  platform: esphome
  password: 12345678

# WiFi credentials
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  on_connect:
    then: 
    - switch.turn_on: wifi_led

  on_disconnect:
    then:
    - switch.turn_off: wifi_led


# Optional manual IP
  manual_ip:
    static_ip: 10.0.0.96
    gateway: 10.0.0.1
    subnet: 255.255.255.0
    dns1: 8.8.4.4
    dns2: 8.8.8.8

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Fujitsu A/C"
    password: "12345678"

captive_portal:

# Add the dependency to pull in the fujitsu heat pump component
external_components:
  - source: github://Omniflux/esphome-tzsp
  - source: github://Omniflux/esphome-fujitsu-halcyon

sensor:
- platform: uptime
  name: "Uptime"

switch:
  - platform: gpio
    pin: GPIO10
    name: "WiFi_LED"
    id: wifi_led
    inverted: false

uart:
  tx_pin: GPIO21  # Device dependent
  rx_pin: GPIO20  # Device dependent
  baud_rate: 500
  parity: EVEN
  rx_full_threshold: 120

climate:
- platform: fujitsu-halcyon
  name: None  # Use device friendly_name

  # Fujitsu devices use 0 and 1, but 2-15 should also work. Must not skip addresses
  controller_address: 1  # 0=Primary, 1=Secondary
  #temperature_controller_address: 0  # Fujitsu controller address to read temperature from

  #temperature_sensor_id: my_temperature_sensor  # ESPHome sensor to read temperature from
  #humidity_sensor: my_humidity_sensor  # ESPHome sensor to read humidity from

  #ignore_lock: true  # Ignore child/part/feature lock set on unit or primary/central remote control

  # To capture communications for debugging / analysis
  # Use Wireshark with https://github.com/Omniflux/fujitsu-airstage-h-dissector
  #tzsp:
  #  ip: 192.168.1.20
  #  protocol: 255

Thanks in advance!
Christian

PS @rogerjet this looks a lot like your issue above, did you ever find the answer?