我正在尝试配置 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/