2017-03-09 6 views
0

とraspbberryパイ3上mqtt_clientを実行しようとしたときにエラーを取得すると、私は以下を実行しようとしているスクリプトを見つけてください:ピクセルOS

def initialize(global_listener): 
    global MQTT_CLIENT 
    global SUBSCRIBERS_ACTIVE_COUNT 
    SUBSCRIBERS_ACTIVE_COUNT = 0 
    MQTT_CLIENT = setup_mqtt_client() 
    global_listener.set_client(MQTT_CLIENT) 
    subscribe_and_listen(MQTT_CLIENT) 


def subscribe_and_listen(client): 
    # Start subscribe, with QoS level 1 
    global UUID 
    client.subscribe(str(UUID), 1) 
    client.subscribe("status_channel", 1) 
    client.subscribe("status_channel/"+str(UUID), 1) 

    rc = 0 
    while rc == 0: 
    rc = client.loop() 
    handle_exception(client=client, rc=rc) 
    LOG.debug("rc: " + str(rc)) 

def setup_mqtt_client(): 
    client = paho.Client(client_id=UUID, clean_session=True, userdata=None,   protocol=paho.MQTTv31) 
    # Assign event callbacks 
    client.on_message = on_message 
    client.on_connect = on_connect 
    client.on_disconnect = on_disconnect 
    client.on_publish = on_publish 
    client.on_subscribe = on_subscribe 
    client.on_log = on_log 
    client.will_set("status_channel/ws_hot",  payload=get_last_will_payload(UUID), qos=1, retain=False) 
    url = urlparse.urlparse(os.environ.get('CLOUDMQTT_URL', 'tcp://<mqtt-server-ip>:1883')) 

    # Connect 
    client.username_pw_set("<username>", "<password>") 
    client.connect(url.hostname, url.port)#, keepalive=20) 

    return client 

しかし、上記のスクリプトを実行する上で、私は次のエラーを取得しています:

Traceback (most recent call last): 
    File "src/mqtt_client.py", line 142, in <module> 
    initialize(JOB_HANDLER) 
    File "src/mqtt_client.py", line 115, in initialize 
    MQTT_CLIENT = setup_mqtt_client() 
    File "src/mqtt_client.py", line 106, in setup_mqtt_client 
    client.connect(url.hostname, url.port)#, keepalive=20) 
    File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 686, in connect 
    return self.reconnect() 
    File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 808, in reconnect 
    sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0)) 
    File "/usr/lib/python2.7/socket.py", line 571, in create_connection 
    raise err 
socket.error: [Errno 113] No route to host 

どこでも答えが見つかりませんでした。助けてください。

P.S. :私はファイアウォールを無効にしようとしていて、ラズベリーパイのiptablesをクリアしないようにしました。

+0

tcp://プレフィックスなしでURLを試してください。 –

+0

@PriyankMehta動作しませんでした! –

+0

あなたはurl.hostが実際にあなたが期待しているものであることを確認しましたか?そのアドレスをコマンドラインからpingすることはできますか? – hardillb

答えて

0

PixelのRaspberry Pi Jessieディストリビューションに問題があります。ファームウェアを更新するには、次のコマンドを実行すると、

RPI-更新

私の問題を解決これが完了するまでに完全な更新のために10〜15分件までかかる場合があります。ファームウェア更新後にリブートしてください。