 
         let diff = Date().timeIntervalSince(self.checkTargetDeviceGotConnectedStartTime!)
         if (diff > MeshSetup.deviceConnectToCloudTimeout) {
+            self.checkTargetDeviceGotConnectedStartTime = nil
             self.fail(withReason: .DeviceConnectToCloudTimeout)
             return
         }


        let diff = Date().timeIntervalSince(self.checkTargetDeviceGotClaimedStartTime!)
        if (diff > MeshSetup.deviceGettingClaimedTimeout) {
            fail(withReason: .DeviceGettingClaimedTimeout)
            return
        }


    override func reset() {
        self.isConnected = false
        self.isClaimed = false

        self.checkTargetDeviceGotConnectedStartTime = nil
        self.checkTargetDeviceGotClaimedStartTime = nil
    }

    private func checkTargetDeviceGotConnected() {
