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

 找回密码
 立即注册
查看: 11444|回复: 13

[基础教程] 关于hassio自带源下载的mqtt服务器 “巨坑" 解决IO锁死

[复制链接]

1

主题

90

帖子

282

积分

论坛分享达人

积分
282
金钱
192
HASS币
0
发表于 2018-12-1 23:20:39 | 显示全部楼层 |阅读模式
本帖最后由 qq2234124 于 2018-12-1 23:57 编辑

                                                          第一次发帖语言组织可能不是十分好。如有说不足请大家见谅

单刀直入话题:

硬件 : Q5  s905B 系列 跟 N1 硬件相似,系统通刷
1.  NodeMcu Lua WIFI V3 1个
2. HR501 人体感应  个  
3. 继电器  1个
4. 4.7K 电阻   103K 电阻 各一个


软件 :1.  Q5安装debian +hassio+ 源Mqtt服务器
            2.   NodeMcuLua WIFI V3  刷espeasy


故障如下:设置好 按钮用途 绑定好HASS 能够正常运行但过一段时间    (基本1-2小时)就开始抽风   

抽风过程 如下描述 :      1.    查看NodeMcu Lua WIFI V3硬件日志  接入HR501人体感应的IO不断高电平 输出11111

                                       2. 断电重启均无效  按钮不受感应控制
                                             3. 就算把人体感应撤掉,依然输出 高电平1111111111111111111~~~~~·

折腾过程:     
                  第一,怀疑程序假死,当然硬重启 恢复出场设置,以为这样解决了 结果无效
                  第二,当然大家都会想到固件故障没错  这个操作我也做了 刷了不下 10个    重启问题依旧过一段时间又抽风  
                  第三,怀疑HR501 不稳定导致 IO  假死       最后被我驳回    因为尝试拉高低电平做测试均无效
                  第四,去到这里大家会跟我一样怀疑  V3 有问题。我自己也这么想的, 前后时间足足花了我3天  3天  3天  好累 因为小白只能折腾
                  第五, 从 ESPeasy  界面重新进入按钮设置   保存一下又恢复正常,如果你不点 怎么重启  都无法恢复IO 正常设定状态  但 2小时候这样又抽风




解决:直接把espeasy  mqtt关闭 重新确定按钮就正常使用

说到这里大家知道可能估计到是什么原因引起了 ?

答案是:自带hass 源下载的mqtt引起的 不知道什么原因直接锁死io 一直让IO 处于高电平输出,这样输出你就算重启V3 硬件都是无效的,必须要进入按钮重新点确定!


既然知道答案 就开始解决: 安装最新1.5.4 MQTT服务器


安装 mqtt 直接安装  不使用hassio 源自带的




                       参考 1:
https://bbs.hassbian.com/thread-5613-1-1.html           

                 参考  2: https://blog.csdn.net/u011195662/article/details/78494276

                        
               SSH:      

                             下载MQTT的源文件

                                 wget https://mosquitto.org/files/source/mosquitto-1.5.4.tar.gz

                      解压,并进入解压后的目录

                      tar xvzf mosquitto-1.4.14.tar.gz

                        cd mosquitto-1.4.14/


                          编译并安装

                       make && sudo make install



         
                设置MQTT服务器
               我们先来创建一个“用户”,红色字体就是用户名

                sudo mosquitto_passwd -c /etc/mosquitto/pwfile  mqtt  (红色为你的名字)



               sudo chown -R mosquitto:mosquitto /var/lib/mosquitto/
               
              把下面的内容,复制粘贴进去  跟 帖子: 有点不一样因为1.5.4更新了 验证机制
          config.jpg

# 服务进程的PID
pid_file /var/run/mosquitto.pid
# 服务进程的系统用户
user mqtt
# 服务绑定的IP地址
#bind_address centoshostnameKL3
# 服务绑定的端口号
port 1883
# 允许的最大连接数,-1表示没有限制                                             
max_connections -1
# 允许匿名用户true
allow_anonymous false
# # 用户/密码文件,默认格式:username:password
persistence true
persistence_location /var/lib/mosquitto/
persistence_file mosquitto.db
connection_messages true

然后执行

sudo ldconfig

下面设置“开机自启动”

sudo nano /etc/systemd/system/mosquitto.service

复制粘贴下面的内容

[Unit]
Description=Insite MQTT Broker

[Service]
ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=always

[Install]
WantedBy=multi-user.target


来启动服务

sudo systemctl start mosquitto.service




启动如果出现故障请参考 [url=https://blog.csdn.net/u011195662/article/details/78494276]连接2[/url]
一、Invalid user错误
报错信息:Error: Invalid user 'mosquitto'
解决方法:
方法一:修改mosquitto目录下mosquitto.conf文件,在#user mosquitto处添加当前运行的用户,如当前用户为mumu,则添加 user mumu,如图:


方法二:执行 adduser mosquitto
新建一个系统用户 例如我mqtt   密码mqtt




sudo systemctl enable mosquitto.service

检查启动服务情况

sudo systemctl status mosquitto.service

设置成系统服务(随系统开机启动)

sudo systemctl enable mosquitto.service




到此 启动了   


启动成功的mqt服务器图

启动成功的mqt服务器图



检测接入情况
sudo systemctl status mosquitto.service
   启动成功图.jpg


结束:

经过一天测试没任何问题



测试反馈图

测试反馈图



问题得以解决我可以安心谁觉















   



            









回复

使用道具 举报

1

主题

90

帖子

282

积分

论坛分享达人

积分
282
金钱
192
HASS币
0
 楼主| 发表于 2018-12-1 23:58:42 | 显示全部楼层
表达得有点乱 说简单点。就是MQTT被强写到ESPEASY 导致 IO 失效。就算你设置了都无法正常使用按钮功能  必须 在抽风后, 进入界面重新点一下保存, 我怀疑论坛很多人都有这个问题
回复

使用道具 举报

17

主题

800

帖子

5736

积分

论坛元老

Rank: 8Rank: 8

积分
5736
金钱
4931
HASS币
0
发表于 2018-12-2 00:27:49 | 显示全部楼层
hassbian手动装的mosquitto,家里两个501都没问题= =
回复

使用道具 举报

1

主题

90

帖子

282

积分

论坛分享达人

积分
282
金钱
192
HASS币
0
 楼主| 发表于 2018-12-2 00:48:33 | 显示全部楼层
sirakawa 发表于 2018-12-2 00:27
hassbian手动装的mosquitto,家里两个501都没问题= =

锁死IO  原因就是跟 自带有关  好累心
回复

使用道具 举报

8

主题

736

帖子

4568

积分

论坛元老

Rank: 8Rank: 8

积分
4568
金钱
3827
HASS币
40
QQ
发表于 2018-12-2 00:51:15 | 显示全部楼层
qq2234124 发表于 2018-12-2 00:48
锁死IO  原因就是跟 自带有关  好累心

我的是这个原因
回复

使用道具 举报

8

主题

736

帖子

4568

积分

论坛元老

Rank: 8Rank: 8

积分
4568
金钱
3827
HASS币
40
QQ
发表于 2018-12-2 00:52:51 | 显示全部楼层
我是不定时的重启,有时候直接死机,就是mqtt的原因不连就没事
回复

使用道具 举报

1

主题

90

帖子

282

积分

论坛分享达人

积分
282
金钱
192
HASS币
0
 楼主| 发表于 2018-12-2 22:53:58 | 显示全部楼层
Aiden1 发表于 2018-12-2 00:52
我是不定时的重启,有时候直接死机,就是mqtt的原因不连就没事

你重装一系MQTT把 。我感觉docker 的还是不太稳定
回复

使用道具 举报

8

主题

736

帖子

4568

积分

论坛元老

Rank: 8Rank: 8

积分
4568
金钱
3827
HASS币
40
QQ
发表于 2018-12-2 23:35:34 | 显示全部楼层
qq2234124 发表于 2018-12-2 22:53
你重装一系MQTT把 。我感觉docker 的还是不太稳定

我用楼主的方法更新了,正在测试
回复

使用道具 举报

8

主题

736

帖子

4568

积分

论坛元老

Rank: 8Rank: 8

积分
4568
金钱
3827
HASS币
40
QQ
发表于 2018-12-3 12:36:37 | 显示全部楼层
Aiden1 发表于 2018-12-2 23:35
我用楼主的方法更新了,正在测试

经过测试还是不行,还会死机或重启
回复

使用道具 举报

17

主题

800

帖子

5736

积分

论坛元老

Rank: 8Rank: 8

积分
5736
金钱
4931
HASS币
0
发表于 2018-12-8 00:10:59 | 显示全部楼层
Aiden1 发表于 2018-12-3 12:36
经过测试还是不行,还会死机或重启

没遇到过- -
换个esp easy的版本试试
然后尽量刷normal的,test的经常重启- -
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 00:00 , Processed in 0.581705 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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