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

 找回密码
 立即注册
查看: 8012|回复: 17

[经验分享] Sonoff-Tasmota 的MQTT switch无法更新状态的问题

[复制链接]

12

主题

114

帖子

1402

积分

金牌会员

Rank: 6Rank: 6

积分
1402
金钱
1288
HASS币
0
发表于 2019-5-6 22:57:53 | 显示全部楼层 |阅读模式
用ESP-12做了个四路开关,发现HA重启后无法更新开关状态,仔细研究半天发现问题:

1、开关的状态state_topic是这样写的:
state_topic: "stat/sonoff/POWER1"  
2、正常情况下,操作开关时状态反馈是这样的:
stat/sonoff/POWER1 = OFF


到这里还没什么问题。

但是,问题来自于HA重启后,开关状态是没有的。如果不操作开关,那Tasmota是不会反馈状态的,只是有一个这样的消息定期汇报所有状态:
tele/sonoff/STATE = {"Time":"2019-05-06T22:53:51","Uptime":"0T00:14:17","Vcc":3.143,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"POWER1":"OFF","POWER2":"ON","POWER3":"ON","POWER4":"OFF","Wifi":{"AP":1,"SSId":"xxxd","BSSId":"6C:3B:6B:44:92:2D","Channel":1,"RSSI":74,"LinkCount":1,"Downtime":"0T00:00:06"}}

这样,通过state_topic: "stat/sonoff/POWER1"  就无法获取开关状态了,只要不操作开关,这个状态就一直无法获取。

请教大神,如何破?

回复

使用道具 举报

23

主题

1335

帖子

6567

积分

超级版主

Rank: 8Rank: 8

积分
6567
金钱
5207
HASS币
100

教程狂人

发表于 2019-5-6 23:01:54 | 显示全部楼层
几个问题,第一你如果你用的ha内置mqtt,那么ha重启mqtt的状态会消失,那么状态肯定被初始化了
第二,还有一个retain设置,这个可以设置保持状态
回复

使用道具 举报

12

主题

114

帖子

1402

积分

金牌会员

Rank: 6Rank: 6

积分
1402
金钱
1288
HASS币
0
 楼主| 发表于 2019-5-6 23:06:21 | 显示全部楼层
natic 发表于 2019-5-6 23:01
几个问题,第一你如果你用的ha内置mqtt,那么ha重启mqtt的状态会消失,那么状态肯定被初始化了
第二,还有 ...

retain设置了同样无法保持状态。
有没有办法从stat/sonoff/POWER1获取反馈状态的同时,也能从tele/sonoff/STATE中获取状态?
回复

使用道具 举报

23

主题

1335

帖子

6567

积分

超级版主

Rank: 8Rank: 8

积分
6567
金钱
5207
HASS币
100

教程狂人

发表于 2019-5-6 23:14:14 | 显示全部楼层
xiguaboy 发表于 2019-5-6 23:06
retain设置了同样无法保持状态。
有没有办法从stat/sonoff/POWER1获取反馈状态的同时,也能从tele/sonoff ...

第一个问题呢?
回复

使用道具 举报

12

主题

114

帖子

1402

积分

金牌会员

Rank: 6Rank: 6

积分
1402
金钱
1288
HASS币
0
 楼主| 发表于 2019-5-6 23:18:17 | 显示全部楼层
natic 发表于 2019-5-6 23:14
第一个问题呢?

我用的就是HA内置的MQTT啊,所以HA重启后就没有状态了。
回复

使用道具 举报

23

主题

1335

帖子

6567

积分

超级版主

Rank: 8Rank: 8

积分
6567
金钱
5207
HASS币
100

教程狂人

发表于 2019-5-6 23:19:20 | 显示全部楼层
xiguaboy 发表于 2019-5-6 23:18
我用的就是HA内置的MQTT啊,所以HA重启后就没有状态了。

这个没办法啊,因为状态存在mqtt里面,重启了肯定没了,换个插件版的mqtt就好了
回复

使用道具 举报

23

主题

1335

帖子

6567

积分

超级版主

Rank: 8Rank: 8

积分
6567
金钱
5207
HASS币
100

教程狂人

发表于 2019-5-6 23:21:04 | 显示全部楼层
natic 发表于 2019-5-6 23:19
这个没办法啊,因为状态存在mqtt里面,重启了肯定没了,换个插件版的mqtt就好了 ...

确实会有tele topic反馈状态,但是这玩意ha貌似不支持,只能自己写码更新状态,换个mqtt broker是比较好的解决办法
回复

使用道具 举报

12

主题

114

帖子

1402

积分

金牌会员

Rank: 6Rank: 6

积分
1402
金钱
1288
HASS币
0
 楼主| 发表于 2019-5-6 23:22:49 | 显示全部楼层
natic 发表于 2019-5-6 23:21
确实会有tele topic反馈状态,但是这玩意ha貌似不支持,只能自己写码更新状态,换个mqtt broker是比较好 ...

OK,谢谢指导
回复

使用道具 举报

6

主题

740

帖子

5618

积分

论坛元老

Rank: 8Rank: 8

积分
5618
金钱
4873
HASS币
20
发表于 2019-5-7 08:31:24 | 显示全部楼层
本帖最后由 mitu 于 2019-5-7 08:33 编辑

tasmota的wiki里明确写了,状态反馈是state_topic: "stat/sonoff/RESULT"这样的格式。
回复

使用道具 举报

12

主题

114

帖子

1402

积分

金牌会员

Rank: 6Rank: 6

积分
1402
金钱
1288
HASS币
0
 楼主| 发表于 2019-5-7 23:09:23 | 显示全部楼层
mitu 发表于 2019-5-7 08:31
tasmota的wiki里明确写了,状态反馈是state_topic: "stat/sonoff/RESULT"这样的格式。

是的,"stat/sonoff/RESULT"能够反馈状态,但是它不会主动反馈
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-8 23:36 , Processed in 0.089537 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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