本帖最后由 DIYSmartHome 于 2025-3-1 11:04 编辑
以前一直用的是2024的版本,用的是以下方法加mac前缀
id(mqtt_client).set_topic_prefix("${topicrelayprefix}/" + App.get_name());
升级2025的版本后,发现这set_topic_prefix函数报错了。
跟踪下代码发现,已经支持自动加前缀了:
也就是把MQTT里的topic_prefix设置成跟name:一样,就会自动MAC前缀
下面给个参考:
esphome:
min_version: 2025.2.0
name: smcurtain
friendly_name: smcurtain
name_add_mac_suffix: true
on_boot:
- light.turn_on:
id: light_white_led
brightness: 50%
- light.turn_off: light_white_led
esp8266:
board: d1_mini
restore_from_flash: true
wifi:
networks:
- ssid: !secret ssid1
password: !secret ssid1_password
ap:
ssid: ${devicename}
password: 123456789
ap_timeout: 2min
fast_connect: False
power_save_mode: none
domain: .local
mqtt:
id: mqtt_client
broker: !secret mqtt_broker
username: !secret mqtt_username
password: !secret mqtt_password
port: !secret mqtt_port
discovery: False
discovery_retain: False
# discovery_unique_id_generator: mac
# discovery_prefix: homeassistant
topic_prefix: smcurtain
效果
|