记录Esphome烧录后配置mqtt服务器的坑

记录Esphome烧录后配置mqtt服务器的坑

在网络上,努力搜了一番,没有找到烧录后再次配置mqtt broker的方法(类似烧录后配置wifi的方法),遂设法解决。

不能直接用lambda配置

错误示例如下,以及报错。

# 这里是错误示例
mqtt:
  id: my_mqtt
  broker: 192.168.1.1
  username: !lambda return("abcd");
  password: abcd
  port: 1883

This option is not templatable!.

辗转使用 text 和 number

使用text和number用来交互数据

# 交互端口
number:
- platform: template
  name: "MQTT Broker port"
  optimistic: true
  min_value: 1024
  max_value: 10240
  step: 1
  restore_value: true
  id: text_port
  initial_value: 1883
# 交互字符串
text:
  - platform: template
    name: "MQTT Broker address"
    optimistic: true
    min_length: 0
    max_length: 100
    mode: text
    restore_value: true
    id: text_brok
    initial_value: "192.168.1.1"
# 掉电保存    

配合重启和on_boot

# 用来交互信息后重启
button:
  - platform: restart
    name: "ESP Restart"
# 上电后将交互的信息配置到mqtt  
esphome:
 name: 32c3-mqtt
 friendly_name: 32C3-mqtt
 on_boot: 
   lambda: !lambda |-
     const char* my_brok = id(text_brok).state.data();
     id(my_mqtt).set_broker_address(my_brok);
     const char* my_user = id(text_user).state.data();
     id(my_mqtt).set_username(my_user);
     const char* my_pass = id(text_pass).state.data();
     id(my_mqtt).set_password(my_pass);
     int my_port = id(text_port).state;
     id(my_mqtt).set_broker_port(my_port);

使用网页交互

# 视图3的感觉还是美观的
web_server:
  port: 80
  version: 3   
  local: true   

使用效果展示

完美交互

提高速度

删除来原生api,不接入esphome

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值