节点红色无法连接到本地MQTT代理 - 新的rasbian安装

时间:2018-04-08 18:13:05

标签: mqtt raspbian node-red mosquitto

我正在设置Pi Desktop作为支持基于节点red / mqtt的家庭自动化系统的基础(在未来SD故障的情况下寻找稳健性),使用保留' boot&的方法#39; SD上的分区而不是永久ROM模式设置方法。我使用最新版本 - 2018年3月16日 - 由Peter Scargill "The Script"设置节点red / mqtt环境。

基于整个事情的操作系统映像是raspbian-2017-07-05

在#34; The Script"调用了Pi Desktop SD-> SSD克隆,并且已经设置了SSD分区,并且SD已经启用了'活跃的根环境。我的假设是在尝试在SSD上复制安装之前,使SD环境适用于所有系统。尽我所能,我试图确保SD和SD上的根分区。 SSD尽可能接近相同,再次出于SSD故障的恢复目的。

在此调用之前,我已经成功运行了#34; The Script"在没有安装Pi Desktop的单独SD上。

然而,在Pi桌面SD上完成"脚本"安装Apache& Node Red正在运行,但Node Red无法连接到新安装的本地Mosquitto MQTT代理。

在第642行"剧本"使用sudo systemctl start mosquitto在安装后立即启动服务器,然后sudo systemctl enable mosquitto在重启后设置auto mqtt启动。

重启后,如果调用ps -ef | grep mosq && netstat -tln | grep 1883,结果为:

    pi@vistacontrol:~ $ !188
    ps -ef | grep mosq && netstat -tln | grep 1883
    pi        2939  2914  0 03:31 pts/0    00:00:00 grep --color=auto mosq
    mosquit+ 10851     1  0 Apr08 ?        00:00:30 /usr/sbin/mosquitto -c         /etc/mosquitto/mosquitto.conf
    tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN
    tcp6       0      0 :::1883                 :::*                    LISTEN

尝试使用本地代理IP地址127.0.0.1在节点红色中配置MQTT节点会导致黄色连接'点和无节点红色吞吐量。

经过多次故障排除尝试后,我终于发现如果我使用sudo /etc/init.d/mosquitto stop停止MQTT服务器,请使用mosquitto -d然后ps -ef | grep mosq && netstat -tln | grep 1883重新启动它,结果是:

    pi@vistacontrol:~ $ ps -ef | grep mosq && netstat -tln | grep 1883
    pi        3388     1  0 03:50 ?        00:00:00 mosquitto -d
    pi        3390  2914  0 03:50 pts/0    00:00:00 grep --color=auto mosq
    tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN
    tcp6       0      0 :::1883                 :::*                    LISTEN

如果我然后将MQTT节点代理设置重新配置为Rpi的网络IP地址,则节点红色MQTT节点开始工作。

那里的任何人都能指出我到哪里&我可能会寻找什么来澄清为什么这两种方法之间的差异。我认为任何其他尝试应用USB棒替代方法的用户完全依赖SD,即使不使用Pi桌面也会遇到类似的困难。

1 个答案:

答案 0 :(得分:0)

如果您没有准确了解如何配置Node-RED,这有点难以解决,但我会猜测。

有问题的脚本将Mosquitto设置为在通过本机MQTT侦听器(但不是奇怪的websocket侦听器)进行连接时需要用户名和密码。

因此,为了连接Node-RED中的默认协议设置,您需要指定用户名和密码(默认为admin / password123)。

当你停止mosquitto服务并手动重启它时,这个工作的原因是该服务被设置为指向已安装的配置文件/etc/mosquitto/mosquitto.conf,当你手动启动它时,你没有指定配置文件( mosquitto不默认加载任何配置文件)因此您要删除需要用户名/密码的选项。