【问题标题】:(ERROR MODULE) python mqtt_Listen_Sensor_Data.py(错误模块)python mqtt_Listen_Sensor_Data.py
【发布时间】:2017-10-27 21:05:33
【问题描述】:

我正在尝试将我的 MQTT 数据存储在树莓上的 SQLITE 数据库中。我在做什么错才能得到下面的错误?

代码:

import paho.mqtt.client as mqtt
from store_Sensor_Data_to_DB import sensor_Data_Handler

# MQTT Settings 
MQTT_Broker = "tcp://localhost:1883"
MQTT_Port = 1883
Keep_Alive_Interval = 45
MQTT_Topic = "kuca/primanje/kanta01/r"

#Subscribe to all Sensors at Base Topic
def on_connect(mosq, obj, rc):
       self.subscribe(MQTT_Topic, 0)

#Save Data into DB Table
def on_message(mosq, obj, msg):
    # This is the Master Call for saving MQTT Data into DB
    # For details of "sensor_Data_Handler" function please refer "sensor_data_to_db.py"
    print "MQTT Data Received..."
    print "MQTT Topic: " + msg.topic  
    print "Data: " + msg.payload
    sensor_Data_Handler(msg.topic, msg.payload)

def on_subscribe(mosq, obj, mid, granted_qos):
    pass

mqttc = mqtt.Client()

# Assign event callbacks
mqttc.on_message = on_message
mqttc.on_connect = on_connect
mqttc.on_subscribe = on_subscribe

# Connect
mqttc.connect(MQTT_Broker, int(MQTT_Port), int(Keep_Alive_Interval))

# Continue the network loop
mqttc.loop_forever()

错误:

pi@Pi:~/Desktop/SQLITE $ python mqtt_Listen_Sensor_Data.py
Traceback (most recent call last):
  File "mqtt_Listen_Sensor_Data.py", line 42, in <module>
    mqttc.connect(MQTT_Broker, int(MQTT_Port), int(Keep_Alive_Interval))
  File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 768, in connect
    return self.reconnect()
  File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 895, in reconnect
    sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0))
  File "/usr/lib/python2.7/socket.py", line 553, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno -2] Name or service not known

【问题讨论】:

    标签: python mqtt


    【解决方案1】:

    Paho Python 客户端采用主机和端口而不是 URL,因为它的 connect 方法。

    connect(host, port=1883, keepalive=60, bind_address="")
    

    因此您应该在脚本顶部编辑代理定义。

    MQTT_Broker = "localhost"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      • 2023-03-03
      相关资源
      最近更新 更多