in client/iot_client.py [0:0]
def __init__(self):
self.serial_number = str(uuid.uuid4())
self.thing_name = self.serial_number
self.iot_endpoint = "{0}-ats.iot.{1}.amazonaws.com".format(
os.environ.get("IOT_ENDPOINT"),
os.environ.get("AWS_DEFAULT_REGION")
)
print("Using endpoint: {0}".format(self.iot_endpoint))
super().__init__(self.serial_number)
self.private_key, self.private_key_pem = self.generate_private_key()
self.certificate_pem = None
self.csr = self.gen_csr(self.private_key)
# AWSIoTMQTTClient connection configuration
self.configureEndpoint(self.iot_endpoint, 8883)
self.configureAutoReconnectBackoffTime(1, 32, 20)
self.configureOfflinePublishQueueing(-1) # Infinite offline Publish queueing
self.configureDrainingFrequency(20) # Draining: 2 Hz
self.configureConnectDisconnectTimeout(10) # 10 sec
self.configureMQTTOperationTimeout(10) # 5 sec
# End MQTT client configuration
self.initial_shadow = {
"battery_state_of_charge": random.choice([1, 10, 30, 90]),
"firmware_version": random.choice(["0.1", "1.0", "1.5", "2.0"]),
"temperature": 15,
"location": random.choice(['nyc', 'atl', 'chi', 'la', 'sf', 'bos'])
}
self.shadow = self.initial_shadow
print("Initialized new thing with serial: {0}".format(self.serial_number))
self.fp_mqtt_client = None
self.certificate_ownership_token = None
self.cert_id = None
self.app_mqtt_client = None
self.open_jobs = dict()
self.boto_session = None
self.send_heartbeats = True
self.wan_connection = 1