python - 从 Raspberry Pi 上的 Python 脚本发布 MQTT 消息

标签 python raspberry-pi mqtt

我正在尝试配置 Raspberry Pi(Raspbian、Jessie)以将温度数据从 DS18B20 传感器发送到我的 MQTT 代理。

我已经安装了 mosquitto、mosquitto-clients 和 python-mosquitto。我还安装了 paho-mqtt。

Mosquitto 似乎运行良好;我可以从命令行发布,但无法获取我编写或找到的任何用于发布或订阅的 python 脚本。

为什么这可以从命令行工作,

mosquitto_pub -h 192.168.0.21 -d -t test/test -m "Hello world!"

而这个脚本没有?

 #!/usr/bin/env python

 import paho.mqtt.client as mqtt

 # set up the mqtt client
 mqttc = mqtt.Client("python_pub")

 # the server to publish to, and corresponding port
 mqttc.connect("192.168.0.21", 1883)

 # the topic to publish to, and the message to publish
 mqttc.publish("test/test", "Hello world!")

 # establish a two-second timeout
 mqttc.loop(2)

提前致谢!

编辑:实验中,我发现通过将脚本中的IP更改为Pi本身的IP,我可以发布Pi接收的MQTT。 Pi 还可以接收发布到它的消息。但是,我仍然无法从脚本发布到外部代理。所以现在我认为这是经纪人的问题......

最佳答案

正如评论中提到的,您发布的代码确实有效,但用于发布 single消息此形式更好

#!/usr/bin/env python
import paho.mqtt.publish as publish

publish.single("test/test", "Hello world!", hostname="192.168.0.21")

关于python - 从 Raspberry Pi 上的 Python 脚本发布 MQTT 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38733589/

相关文章:

python - 在 apache 上使用 pipenv 部署 django 应用程序

python - 在VS Code API中,如何获取Python环境路径?

c# - Mono 无法访问文件,即使 linux shell 可以在没有 root 的情况下访问

c - MQTT 问题 : Broker closing connection as i send connect packet

c - 向 IOT 中心发布消息 - Eclypse Paho MQTT

python - 使用 pandas 从 txt 加载数据

python - 检测到人脸时,Mqtt发布消息

linux - 如何防止 linux 初始化 USB HID 设备

mqtt - 编译 Mosquitto 1.4 时出错

python - 打印出 ValueError 的实际错误消息