AWSIoTMQTTClient - how can I tell if the client is offline?

0

Hello all,
I am new to aws IoT and AWSIoTPythonSDK :)

I have a python script (which is based on basicPubSub.py) that reads small files from directory and send their content to topic using :
self.myAWSIoTMQTTClient.publish(topic, message_to_send, 1)

I have long disconnection periodד, and i want to stop sending message to the topic while the device is offline (I dont want the messages to be send to the offline queue).
Can I tell the client status using the SDK?

p.s
I thought about copy the logic from MqttCore.publish() method, but it based on:
self._client_status.get_status()
and I dont think I can access this data...

p.s.s
I can NOT use greengrass

Thanks,
Aya

asked 4 years ago35 views
1 Answer
0

I found the solution:

    self.myAWSIoTMQTTClient.onOffline = self.myOnOfflineCallback  
    self.myAWSIoTMQTTClient.onOnline = self.myOnOnlineCallback  

def myOnOfflineCallback(self):  
    self.sent_to_topic = False  
    print("OFFLINE")  

def myOnOnlineCallback(self):  
    self.sent_to_topic = True  
    print("ONLINE")  

def publish(self, topic, message_to_send):  
    if self.sent_to_topic:  
        self.myAWSIoTMQTTClient.publish(topic, message_to_send, 1)  
        print(f"Published topic {topic}")
answered 4 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions