我正在尝试将本地 mosquitto(在树莓派上)桥接到某个云代理,以便我可以发送数据并使用该数据控制某些设备。我尝试使用 Cloudmqtt 和 dioty,但没有成功。在 cloudmqtt 的情况下,我被告知 mosquitto.conf 文件一切正常,而对于 dioty,我被告知它使用不支持桥接的 Mosca 代理(有人告诉我我指的是 cloudmqtt 和 dioty)支持服务)。有人知道一些可以桥接到本地蚊子的远程代理吗?有人已经尝试过吗?
我考虑过使用一些物联网平台来做到这一点,但我已经读过该平台,比如使用定价,我这样做是为了学习和爱好目的,所以在我学习如何使用它之前,我想保留免费帐户。
编辑:
我正在使用 mosquitto 1.4.5,mosquitto.conf 文件如下:
#Place your local configuration in /etc/mosquitto/conf.d/
#
#A full description of the configuration file is at
#/usr/share/doc/mosquitto/examples/mosquitto.conf.example
connection cloudmqtt
address mnumber.cloudmqtt.com:port
topic zaESP8266 in 0
topic ESP8266 out 0
try_private true
notifications false
start_type automatic
remote_usename username_of_the_user_on_cloudmqtt
remote_password password_of the_user_on_cloudmqtt
pid_file /var/run/mosquitto.pid
persistance true
persistance_location /var/lib/mosquitto/
我选择 Cloudmqtt 作为在线 mosquitto 代理的原因是因为我认为本地 mosquitto 远程 mosquitto 桥应该可以工作。我可以使用笔记本电脑或电话等客户端,并使用它们向本地代理发布和订阅消息。这样,即使我无法访问互联网,我也可以让本地经纪人与本地客户进行交互。
编辑:
我配置了 mosquitto.conf 文件,以便可以与 test.mosquitto.org 桥接,我添加了这些行:
connection test
address test.mosquitto.org
topic in_topic in 0
topic out_topic out 0
try_private false
notifications false
bridge_attempt_unsubscribe true
现在,在一个终端中我可以使用mosquitto_sub -t in_topic
在我使用的其他终端中mosquitto_pub -h test.mosquitto.org -t in_topic -m message
。我在使用 mosquitto_sub 命令的第一个终端中收到该消息。因此,在此之后,我认为桥接器运行良好是正确的。但我无法弄清楚桥接到 cloudmqtt 的问题是什么。
Cloudmqtt使用mosquitto mqtt代理,dioty从mosquitto交叉到Mosca mqtt代理,不支持桥接,但显然具有更好的可扩展性(此信息已由dioty客户服务提供给我)
编辑:
我使用 Node-RED 解决了这个桥接问题。刚刚添加了一个 mqtt 输入并将其配置为本地 mosquitto 代理(端口 1883)和两个 mqtt 输出(用于 cloudmqtt 和 DIoTY)。
在cloudmqtt上,创建帐户后(可爱的猫是免费的),进入控制面板并添加cloudmqtt实例,cloudmqtt将向您提供用户名和密码。在 Node-RED 中,通过添加服务器、用户名、密码和端口来配置 cloudmqtt 实例的 mqtt 输出之一。
在 DIoTY 上,您还需要创建帐户或使用 google 或其他帐户登录。当您登录时,系统将向您提供用户名(即您的邮件帐户)以及其他信息,例如主机和端口、密码,这些信息将发送到电子邮件帐户。因此,要在 Node-RED 中使用它,您需要将主机(服务器)、用户名、密码和端口添加到 mqtt 输出。当您订阅或发布消息时,请记住您有根主题,例如:
/您的邮件帐户/主题
无论是订阅某个主题还是发布一些消息,您都需要添加根主题作为某种前缀。
完成此配置后,您需要部署更改,就是这样。因此,对于这种情况,我使用了 Node-RED。