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

gefragt vor 5 Jahren332 Aufrufe
1 Antwort
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}")
beantwortet vor 5 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen