『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 978|回复: 12

[已解决] 关于小白使用mtqq的心酸历程

[复制链接]

4

主题

27

帖子

129

积分

注册会员

Rank: 2

积分
129
金钱
102
HASS币
0
发表于 2023-12-31 12:40:54 | 显示全部楼层 |阅读模式
手里有个某迅dc1插排,之前一直使用的是三木大佬的esphome固件,但以前我不会更改yaml文件配置,没敢改,导致断网后设备一直反复重启。后来由于种种原因,之前esphome内相关的固件已经被我删除了,相关的配置都找不到了。上周手贱,重新刷了esphome的基础固件,想刷好后用ota更新三木大神的固件,结果,悲剧了,esphome的内核更新后不支持编译以前的配置文件了,真想给自己一个大嘴巴子。
尝试更改配置文件,失败!!!!

降级esphome尝试编译,失败!!!!提示我更新到最新内核……这不是逗我么…………

最后无奈找到了情留メ蚊子大神的dc1固件,mqtt版本的,按照教程又要拆解刷机,直接抓狂。但我还是要挣扎一下,直接用esphome web OTA更新,没想到…………居然成功了!!!!!!!

但是,由于我之前没用过mqtt,特么的不知道怎么接入ha……………………!!!!!网上各种教程看都看不懂,怎么办!!!!!!!!!!论坛也有很多小白跟我一样,问mqtt怎么用的,无一例外没有人愿意回答,关键是居然还有大佬在下面评论“这也需要教”!!!我特么………………能不能对小白友好点啊,大佬们!!!下面就是我自己学习使用mqtt的经历,希望能帮到跟我一样小白的兄弟。

从什么是mqtt、mqtt原理学起,网上很多,一搜就能看懂,但并不能教会你怎么用。

评分

参与人数 2金钱 +11 收起 理由
DDDear + 7 感谢楼主分享!
relliky + 4 感谢楼主分享!

查看全部评分

回复

使用道具 举报

4

主题

27

帖子

129

积分

注册会员

Rank: 2

积分
129
金钱
102
HASS币
0
 楼主| 发表于 2023-12-31 12:42:04 | 显示全部楼层
本帖最后由 gl695133087 于 2023-12-31 12:43 编辑

第一步,需要搭建mqtt服务器【发布设备和订阅设备的中转站,这里发布设备就是mqtt协议设备本身,订阅设备就是ha,只有订阅到了发布设备的主题(具体网上搜一下),才能添加设备】,网上也有提供一些免费的,但是还是掌握在手里安全,这里我选择用群晖Container Manager搭建(这货就是以前的群晖docker),相关的设备映射关系如下,都已经需要添加mqtt设备了,且这些操作都有详细教程不再细说,直接上图。

                               
登录/注册后可看大图


这一步需要注意的是,容器刚设置会反复重启,需要按下面的方式操作【1.在映射的config文件夹内(这里就是docker/mosquitto/config文件夹),新增mosquitto.conf和pwfile.conf两个文件,第一个文件是配置文件、第二个是存账号密码的文件,这里在电脑桌面使用TXT文本创建后改名(连扩展名一起改掉就行),上传群晖相应文件夹内即可;2.在mosquitto.conf写入listener 1883 persistence true persistence_location /mosquitto/data/ log_dest file /mosquitto/log/mosquitto.log # 关闭匿名模式 allow_anonymous false # 指定密码文件(具体见下图),pwfile.conf不用手动写入内容;3.启动容器后不会再反复重启,但还需设置账户密码,使用ssh登录容器后台,我直接用了容器的终端机(这里如果提示socket关闭直接用本地局域网ip登录终端机就可以了,新增sh命令),输入mosquitto_passwd -c /mosquitto/config/pwfile.conf admin,按照提示输入密码确认即可】。重启容器就算搭建好了mqtt服务中转站。
回复

使用道具 举报

4

主题

27

帖子

129

积分

注册会员

Rank: 2

积分
129
金钱
102
HASS币
0
 楼主| 发表于 2023-12-31 12:43:21 | 显示全部楼层

                               
登录/注册后可看大图


回复

使用道具 举报

4

主题

27

帖子

129

积分

注册会员

Rank: 2

积分
129
金钱
102
HASS币
0
 楼主| 发表于 2023-12-31 12:45:11 | 显示全部楼层
第二步,在ha添加集成,直接在ha的配置→设备与服务内新增,搜索mqtt安装就可。

                               
登录/注册后可看大图

回复

使用道具 举报

4

主题

27

帖子

129

积分

注册会员

Rank: 2

积分
129
金钱
102
HASS币
0
 楼主| 发表于 2023-12-31 12:46:17 | 显示全部楼层
第三步,添加设备及实体。第二步完成后集成下面是啥也没有的。怎么添加设备和实体呢,一脸蒙圈啊。其实这一步截至现在我也没怎么整明白,网上有很多大神使用python完成的实体发布与订阅,我是编程白痴,会一点很基础的。这里我只能用我添加DC1插排的经历来描述(再次感谢情留メ蚊子大佬提供的固件)。

1.打开dc1的mqtt自动发现,在dc1网页端就能看到。


2.大佬很贴心,在网页端可以下载到ha的配置文件。但我不能直接使用。

3.打开ha端mqtt的启用发现,具体见下面这几张图。到这一步已经可以在ha的日志内看到mqtt实体了,但是没法使用,没有unique_id,ha无法添加到面板。
回复

使用道具 举报

4

主题

27

帖子

129

积分

注册会员

Rank: 2

积分
129
金钱
102
HASS币
0
 楼主| 发表于 2023-12-31 12:47:25 | 显示全部楼层
gl695133087 发表于 2023-12-31 12:46
第三步,添加设备及实体。第二步完成后集成下面是啥也没有的。怎么添加设备和实体呢,一脸蒙圈啊。其实这一 ...


                               
登录/注册后可看大图

                               
登录/注册后可看大图

回复

使用道具 举报

4

主题

27

帖子

129

积分

注册会员

Rank: 2

积分
129
金钱
102
HASS币
0
 楼主| 发表于 2023-12-31 12:50:31 | 显示全部楼层
发不了大图……………………
点击mqtt集成→选项→重新配置mqtt→高级选项→下一步→启用发现→提交
回复

使用道具 举报

4

主题

27

帖子

129

积分

注册会员

Rank: 2

积分
129
金钱
102
HASS币
0
 楼主| 发表于 2023-12-31 12:51:34 | 显示全部楼层
4.修改ha的配置文件configuration.yaml,代码#===========================斐讯dc1配置=============================中间的代码就是我修改的dc1配置,直接复制情留メ蚊子大佬的配置进去不能用,我也不知道为啥,按照ha的mqtt文档修改了一下。复制代码如果出错的话多办是缩进原因,留意一下。不出意外,重启ha之后就可以看到mqtt的设备实体了,可以添加到面板了。
回复

使用道具 举报

4

主题

27

帖子

129

积分

注册会员

Rank: 2

积分
129
金钱
102
HASS币
0
 楼主| 发表于 2023-12-31 12:52:36 | 显示全部楼层
# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
homeassistant:
  packages: !include_dir_named packages

#===========================斐讯dc1配置=============================
mqtt:
  switch:
    - unique_id: phicomm-dc1_1
      name: "phicomm-dc1_1"
      state_topic: "dc1/phicomm-dc1/stat/power1"
      command_topic: "dc1/phicomm-dc1/cmnd/power1"
      payload_on: "on"
      payload_off: "off"
      availability_topic: "dc1/phicomm-dc1/tele/availability"
      payload_available: "online"
      payload_not_available: "offline"

    - unique_id: phicomm-dc1_2
      name: "phicomm-dc1_2"
      state_topic: "dc1/phicomm-dc1/stat/power2"
      command_topic: "dc1/phicomm-dc1/cmnd/power2"
      payload_on: "on"
      payload_off: "off"
      availability_topic: "dc1/phicomm-dc1/tele/availability"
      payload_available: "online"
      payload_not_available: "offline"

    - unique_id: phicomm-dc1_3
      state_topic: "dc1/phicomm-dc1/stat/power3"
      payload_on: "on"
      payload_off: "off"
      payload_not_available: "offline"
      payload_available: "online"
      name: "phicomm-dc1_3"
      command_topic: "dc1/phicomm-dc1/cmnd/power3"
      availability_topic: "dc1/phicomm-dc1/tele/availability"

    - unique_id: phicomm-dc1_4
      name: "phicomm-dc1_4"
      state_topic: "dc1/phicomm-dc1/stat/power4"
      command_topic: "dc1/phicomm-dc1/cmnd/power4"
      payload_on: "on"
      payload_off: "off"
      availability_topic: "dc1/phicomm-dc1/tele/availability"
      payload_available: "online"
      payload_not_available: "offline"

  sensor:
    - unique_id: phicomm-dc1_voltage
      name: "phicomm-dc1_voltage"
      state_topic: "dc1/phicomm-dc1/tele/energy"
      value_template: "{{value_json.voltage}}"
      unit_of_measurement: "V"

    - unique_id: phicomm-dc1_current
      name: "phicomm-dc1_current"
      state_topic: "dc1/phicomm-dc1/tele/energy"
      value_template: "{{value_json.current}}"
      unit_of_measurement: "A"

    - unique_id: phicomm-dc1_power
      name: "phicomm-dc1_power"
      state_topic: "dc1/phicomm-dc1/tele/energy"
      value_template: "{{value_json.power}}"
      unit_of_measurement: "W"

    - unique_id: phicomm-dc1_apparent_power
      name: "phicomm-dc1_apparent_power"
      state_topic: "dc1/phicomm-dc1/tele/energy"
      value_template: "{{value_json.apparent_power}}"
      unit_of_measurement: "VA"

    - unique_id: phicomm-dc1_reactive_power
      name: "phicomm-dc1_reactive_power"
      state_topic: "dc1/phicomm-dc1/tele/energy"
      value_template: "{{value_json.reactive_power}}"
      unit_of_measurement: "VAr"

    - unique_id: phicomm-dc1_factor
      name: "phicomm-dc1_factor"
      state_topic: "dc1/phicomm-dc1/tele/energy"
      value_template: "{{value_json.factor}}"

    - unique_id: phicomm-dc1_total
      name: "phicomm-dc1_total"
      state_topic: "dc1/phicomm-dc1/tele/energy"
      value_template: "{{value_json.total}}"
      unit_of_measurement: "kWh"

    - unique_id: phicomm-dc1_yesterday
      name: "phicomm-dc1_yesterday"
      state_topic: "dc1/phicomm-dc1/tele/energy"
      value_template: "{{value_json.yesterday}}"
      unit_of_measurement: "kWh"

    - unique_id: phicomm-dc1_today
      name: "phicomm-dc1_today"
      state_topic: "dc1/phicomm-dc1/tele/energy"
      value_template: "{{value_json.today}}"
      unit_of_measurement: "kWh"

    - unique_id: phicomm-dc1_starttime
      name: "phicomm-dc1_starttime"
      state_topic: "dc1/phicomm-dc1/tele/energy"
      value_template: "{{value_json.starttime}}"
#========================================斐讯dc1==================================

回复

使用道具 举报

0

主题

78

帖子

609

积分

高级会员

Rank: 4

积分
609
金钱
531
HASS币
0
发表于 2023-12-31 12:54:47 | 显示全部楼层
给你点赞
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-28 19:28 , Processed in 0.126271 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表