I have successfully got this working with ESPHome, as described above.
Thanks to the developers .
Might I suggest a new thread , or a community guide about this installation as I only managed to find it half way down a very long thread about a different installation method, after much reading and confusion.
1 Like
aceindy
(Aceindy)
June 30, 2025, 6:00pm
250
Shoot ā¦forgot all about itā¦still need it?
(or maybe someone else can post their yaml? )
8zSmart
(8z Smart)
June 30, 2025, 6:30pm
251
Could you possibly make a manual, Iām currently despairing with my RPI4, I havenāt worked with ESP Home yet
Iāll have a go at this tomorrow.
1 Like
8zSmart
(8z Smart)
June 30, 2025, 7:43pm
253
I have the following problem. I was able to pair my two Bluetooth controls but after some time the status was not available. Can I keep the connection with esp32 active?
Could you share it please ?
Iām ESP newbie and also looking for a config to start with.
aceindy
(Aceindy)
July 1, 2025, 9:57am
255
Should be something like this
I took out everything related to my light switch (i hope)
substitutions:
node_name: "daikin-ac"
node_id: daikin_ac
friendly_node_name: "Daikin AC"
esphome:
name: ${node_name}
friendly_name: Bluetooth Daikin
min_version: 2025.2.1
name_add_mac_suffix: False
#Note that my esp32 board (shelly-1-plus) is defined as esp32doit-devkit-v1, so you might need to change that if using some other board.
esp32:
board: esp32doit-devkit-v1
framework:
type: esp-idf
sdkconfig_options:
CONFIG_FREERTOS_UNICORE: y
CONFIG_ESP32_DEFAULT_CPU_FREQ_160: y
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ: "160"
# WiFi connection, correct these
# with values for your WiFi.
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.1.31
gateway: 192.168.1.1
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: ${node_name} FB
password: !secret wifi_password
# Enable Home Assistant API
api:
encryption:
key: !secret api_encryption
services:
- service: passkey_reply
variables:
passkey: int
then:
- logger.log: "Authenticating with passkey"
- ble_client.passkey_reply:
id: cmanager_ac
passkey: !lambda return passkey;
- service: numeric_comparison_reply
variables:
accept: bool
then:
- logger.log: "Authenticating with numeric comparison"
- ble_client.numeric_comparison_reply:
id: cmanager_ac
accept: !lambda return accept;
# Enable over-the-air updates.
ota:
- platform: esphome
password: !secret ota_password
# Enable logging.
logger:
#Load external sources
external_components:
- source: github://Petapton/esphome@madoka
components: [ madoka, esp32_ble ]
esp32_ble:
io_capability: keyboard_display
esp32_ble_tracker:
#Use the MAC address of your Daikin BLE here
ble_client:
- mac_address: AC:58:1C:B6:71:88
id: my_ac
on_passkey_request:
then:
- logger.log: "Enter the passkey displayed on your BLE device"
- logger.log: " Go to https://my.home-assistant.io/redirect/developer_services/ and select passkey_reply"
on_passkey_notification:
then:
- logger.log:
format: "Enter this passkey on your BLE device: %06d"
args: [ passkey ]
on_numeric_comparison_request:
then:
- logger.log:
format: "Compare this passkey with the one on your BLE device: %06d"
args: [ passkey ]
- logger.log: " Go to https://my.home-assistant.io/redirect/developer_services/ and select numeric_comparison_reply"
on_connect:
then:
- logger.log: "Connected"
climate:
- platform: madoka
name: "My AC"
ble_client_id: my_ac
update_interval: 15s
# Text sensors with general information.
text_sensor:
- platform: version
name: ${friendly_node_name} ESPHome Version
id: ${node_id}_esphome_version
- platform: wifi_info
ip_address:
name: "${friendly_node_name} IP Address"
id: ${node_id}_ip_address
icon: mdi:ip-network
ssid:
name: "${node_id} Wi-Fi SSID"
bssid:
name: "${node_id} Wi-Fi BSSID"
# Sensors with general information.
sensor:
- platform: ble_client
type: rssi
ble_client_id: my_ac
name: "My AC"
# Uptime sensor.
- platform: uptime
name: ${node_id} Uptime Sensor
# WiFi Signal sensor.
- platform: wifi_signal
name: ${node_id} WiFi Signal
update_interval: 60s
switch:
- platform: restart
name: ${friendly_node_name} Restart
id: ${node_id}_restart
icon: "mdi:restart"
- platform: shutdown
name: ${friendly_node_name} Shutdown
id: ${node_id}_shutdown
- platform: safe_mode
name: ${friendly_node_name} Restart (Safe Mode)"
id: ${node_id}_safe_mode
Not sure I can help with that, having only just got it going, Iāve not had any problems yet.
I would check you phone is not trying to connect.
I would add an uptime sensor to your ESP, to see if its rebooting
text_sensor:
- platform: uptime
name: Uptime
I would connect just one AC unit, see if it works then.
8zSmart
(8z Smart)
July 1, 2025, 10:48am
257
Can you possibly make an instruction how you have implemented this with EspHome. I have no experience here.
Little update here.
Two AC units connected and stable, but I have seen a problem: although order transmission (setting mode, speed, temp) works fast and flawlessly, all the time one of my HA components Will not update and Will be kept outdated: for example, if the initial temperature was set in 25ā°, it Will show that config all the time even if I change It to another value (same applies to modes). The other unit Will be updated.
Looking at the log in ESPHome, I see that updated keep coming in, but packages and values start overflowing the buffer. I Will try every unit separately to confirm this is the issue and not a problem with the Ac unit.
Any tip or clue here?